From 6c975db771e9e3e3c2083b7dbb369288d741aea1 Mon Sep 17 00:00:00 2001 From: jkriege2 Date: Thu, 13 Dec 2018 22:29:37 +0100 Subject: [PATCH] added example for arranging plots in a QGridLayout --- JKQtPlotterBuildAllExamples.pro | 4 + README.md | 6 + screenshots/test_multiplot.png | Bin 0 -> 56937 bytes screenshots/test_multiplot_printpreview.png | Bin 0 -> 55788 bytes screenshots/test_multiplot_small.png | Bin 0 -> 15430 bytes test/test_multiplot/README.md | 108 +++++++++++++ test/test_multiplot/test_multiplot.cpp | 153 ++++++++++++++++++ test/test_multiplot/test_multiplot.pro | 22 +++ .../test_multiplot/test_multiplot_and_lib.pro | 8 + 9 files changed, 301 insertions(+) create mode 100644 screenshots/test_multiplot.png create mode 100644 screenshots/test_multiplot_printpreview.png create mode 100644 screenshots/test_multiplot_small.png create mode 100644 test/test_multiplot/README.md create mode 100644 test/test_multiplot/test_multiplot.cpp create mode 100644 test/test_multiplot/test_multiplot.pro create mode 100644 test/test_multiplot/test_multiplot_and_lib.pro diff --git a/JKQtPlotterBuildAllExamples.pro b/JKQtPlotterBuildAllExamples.pro index afd32ab3b5..6c2e2d01b9 100644 --- a/JKQtPlotterBuildAllExamples.pro +++ b/JKQtPlotterBuildAllExamples.pro @@ -4,6 +4,7 @@ SUBDIRS += jkqtplotterlib \ jkqtmathtext_simpletest \ jkqtplot_test \ jkqtplotter_simpletest \ + test_multiplot jkqtplotterlib.file = lib/jkqtplotterlib.pro @@ -20,6 +21,9 @@ jkqtplot_test.depends = jkqtplotterlib jkqtplotter_simpletest.file = test/simpletest/jkqtplotter_simpletest.pro jkqtplotter_simpletest.depends = jkqtplotterlib +test_multiplot.file = test/test_multiplot/test_multiplot.pro +test_multiplot.depends = jkqtplotterlib + defineTest(addSimpleTest) { test_name = $$1 SUBDIRS += jkqtplotter_simpletest_$${test_name} diff --git a/README.md b/README.md index f3af7bbdd5..70c0819f8c 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,12 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_opencv_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/simpletest_imageplot_opencv) | [1-channel OpenCV cv::Mat Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/test/simpletest_imageplot_opencv) | `JKQTPColumnMathImage`
image data copied from OpenCV cv::Mat-structure into a single column of the internal datastore | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_rgbimageplot_opencv_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/simpletest_rgbimageplot_opencv) | [RGB OpenCV cv::Mat Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/test/simpletest_rgbimageplot_opencv) | `JKQTPColumnRGBMathImage`
image data copied from OpenCV cv::Mat-structure into three columns of the internal datastore | +### GUI Tools and Plot Layout + +| Screenshot | Description | Notes | +|:-------------:| ------------- | ------------- | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/test_multiplot) | [Layouting Several Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/test/test_multiplot) | Combining plots in Qt Layouts
linking plot axes
copy data from a `std::map` int the datastore | + ### Tools and Special Features | Screenshot | Description | Notes | diff --git a/screenshots/test_multiplot.png b/screenshots/test_multiplot.png new file mode 100644 index 0000000000000000000000000000000000000000..79032773eaf992691d29faeae5dead6740d6554e GIT binary patch literal 56937 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 NmE_c9OCYcO{|`e{5}N=3 literal 0 HcmV?d00001 diff --git a/screenshots/test_multiplot_printpreview.png b/screenshots/test_multiplot_printpreview.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6201b4aa6d5b35ebd3dd26b15908c7109974bf GIT binary patch literal 55788 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

b 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 literal 0 HcmV?d00001 diff --git a/screenshots/test_multiplot_small.png b/screenshots/test_multiplot_small.png new file mode 100644 index 0000000000000000000000000000000000000000..58cb49a8c33bc1932d81aa6922794cb8457247fe GIT binary patch literal 15430 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 wKIiaddWidget(plotMain, 0,0); + JKQTPdatastore* ds=plotMain->getDatastore(); + + // 3.2 create a second and third plotter widget and add them to the + // layout below and at the bottom right of the plotMain. + // Also configure it to use the same datastore as plotMain + JKQtPlotter* plotResid=new JKQtPlotter(false, &mainWidget, ds); + layout->addWidget(plotResid, 1,0); + JKQtPlotter* plotResidHist=new JKQtPlotter(false, &mainWidget, ds); + layout->addWidget(plotResidHist, 1,1); + + // 3.3 set relative sizes of the plots via the layout (small plots have 1/3 the width and height of the large plot + layout->setRowStretch(0,3); + layout->setRowStretch(1,1); + layout->setColumnStretch(0,3); + layout->setColumnStretch(1,1); +``` + +With this simple setup, all three plots would be arranged by the QLayout, but they were all independent. This example could be part of a data fitting application, where the main plot shows data and a fit curve. A plot below that will display the residulas (errors) of the fit. Now if a user zooms one of the plots, he would expect that athe x-axes of the two plots are synchronized. The same for a third plot on the rhs of the residuals, which will show a residual histogram. This linking of the axes can be achieved by the following code: + +```c++ + // 3.4 synchronize width/x-axis of plotResid to width/x-axis of plotMain + plotResid->get_plotter()->synchronizeToMaster(plotMain->get_plotter(), true, false, true, true); + + // 3.5 synchronize y-axis of width/plotResidHist to y-axis of width/plotResid + plotResidHist->get_plotter()->synchronizeToMaster(plotResid->get_plotter(), false, true, true, true); +``` + +Finally: When printing or saving an image of the plots, the plotter will no know anything about the arrangement of the plots and the plots cannot be printed/drawn in the same arrangement as in the window. If you want to arrange the plots in the same layout in a printout, as in the window, you will have to tell the main plot, in which arrangement to print the plots: + +```c++ + // 3.6 ensure that the plot are printed/exported in whole, when printing in plotMain + plotMain->get_plotter()->set_gridPrinting(true); + plotMain->get_plotter()->addGridPrintingPlotter(0,1,plotResid->get_plotter()); + plotMain->get_plotter()->addGridPrintingPlotter(1,1,plotResidHist->get_plotter()); +``` + +In the first line, grid-printing (i.e. the layouted printing of several graphs) is activated. Then the arrangement of the two slave plots `plotResid` and `plotResidHist` is defined as (`x,y`)-shifts with respect to the master plot `plotMain`. + +Now some data is generated and several curves are added to the graphs. See [`test_multiplot.cpp`](https://github.com/jkriege2/JKQtPlotter/blob/master/test/simpletest_stepplots/test_multiplot.cpp) for the full source code. + +Finally the axes and plots need a bit of formatting to make them look nicer: + +```c++ + // 6.1 axis labels, distributed over the several plots + plotMain->get_yAxis()->set_axisLabel("y axis"); + plotResid->get_xAxis()->set_axisLabel("x axis"); + plotResid->get_yAxis()->set_axisLabel("residuals"); + plotResidHist->get_xAxis()->set_axisLabel("frequency"); + // 6.2 switch off the tick labels on the axes that directly face another plot + plotMain->get_xAxis()->set_drawMode1(JKQTPCADMticks); + plotResidHist->get_yAxis()->set_drawMode1(JKQTPCADMticks); + // 6.3 show tick labels on the rhs y-axis of the residual histogram plot + plotResidHist->get_yAxis()->set_drawMode2(JKQTPCADMticksAndLabels); + // 6.4 hide keys in all plots but the main plot + plotResid->get_plotter()->set_showKey(false); + plotResidHist->get_plotter()->set_showKey(false); + // 6.5 hide position label and toolbars in the plots except main plot + plotResid->set_displayToolbar(false); + plotResid->set_displayMousePosition(false); + plotResidHist->set_displayToolbar(false); + plotResidHist->set_displayMousePosition(false); + plotMain->set_toolbarAlwaysOn(true); +``` + +As a last step, the axes are scaled automatically, so the data fills the plots: + +```c++ + // 7. scale plots automatically to data + plotResid->zoomToFit(); + plotResidHist->zoomToFit(); + plotMain->zoomToFit(); +``` + +The result looks like this: + +![test_multiplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot.png) + +You push the print button (![test_multiplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/lib/jkqtplotterressources/images/jkqtp_24_print.png)) to open a print preview dialog, which will give an impression of how the three plots will be arranged in a printout: + +![test_multiplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot_printpreview.png) + + + + +[Back to JKQTPlotter main page](https://github.com/jkriege2/JKQtPlotter/) \ No newline at end of file diff --git a/test/test_multiplot/test_multiplot.cpp b/test/test_multiplot/test_multiplot.cpp new file mode 100644 index 0000000000..3287a5dce1 --- /dev/null +++ b/test/test_multiplot/test_multiplot.cpp @@ -0,0 +1,153 @@ +#include +#include "jkqtplotter/jkqtplotter.h" +#include "jkqtplotter/jkqtpelements.h" +#include "jkqtplotter/jkqtpparsedfunctionelements.h" +#include "jkqtplotter/jkqtpbarchartelements.h" +#include +#include + +int main(int argc, char* argv[]) +{ + QApplication app(argc, argv); + + // 1. create a widget + QWidget mainWidget; + mainWidget.setWindowTitle("JKQtPlotter(s) in a QGridLayout"); + + // 2. Create a QGridLayout for the plots and add it to the widget. + QGridLayout* layout=new QGridLayout(); + mainWidget.setLayout(layout); + + // 3.1 create a main plotter widget and add it to the layout + JKQtPlotter* plotMain=new JKQtPlotter(&mainWidget); + layout->addWidget(plotMain, 0,0); + JKQTPdatastore* ds=plotMain->getDatastore(); + + // 3.2 create a second and third plotter widget and add them to the + // layout below and at the bottom right of the plotMain. + // Also configure it to use the same datastore as plotMain + JKQtPlotter* plotResid=new JKQtPlotter(false, &mainWidget, ds); + layout->addWidget(plotResid, 1,0); + JKQtPlotter* plotResidHist=new JKQtPlotter(false, &mainWidget, ds); + layout->addWidget(plotResidHist, 1,1); + + // 3.3 synchronize width/x-axis of plotResid to width/x-axis of plotMain + plotResid->get_plotter()->synchronizeToMaster(plotMain->get_plotter(), true, false, true, true); + + // 3.4 synchronize y-axis of width/plotResidHist to y-axis of width/plotResid + plotResidHist->get_plotter()->synchronizeToMaster(plotResid->get_plotter(), false, true, true, true); + + // 3.5 ensure that the plot are printed/exported in whole, when printing in plotMain + plotMain->get_plotter()->set_gridPrinting(true); + plotMain->get_plotter()->addGridPrintingPlotter(0,1,plotResid->get_plotter()); + plotMain->get_plotter()->addGridPrintingPlotter(1,1,plotResidHist->get_plotter()); + + // 3.6 set relative sizes of the plots via the layout (small plots have 1/3 the width and height of the large plot + layout->setRowStretch(0,3); + layout->setRowStretch(1,1); + layout->setColumnStretch(0,3); + layout->setColumnStretch(1,1); + + + + // 4. now we create some (artificial) data: + // - in plotMain we show an exponential curve and and some datapoints + // - in plotResid we show the residuals, i.e. the difference between the curve and the datapoints + // - in plotResidHist we will show a histogram of the residuals (calculated in histogram) + std::random_device rd; + std::mt19937 gen(rd()); + std::normal_distribution<> d(0,0.5); + + std::vector dataX, dataY, dataRY; + std::map histogram; + const int Ndata=60; + for(int n=0; n(Ndata)*static_cast(n)-0.5; + const double y=2.0*(1.0+cos(x)); + const double yd=y+d(gen); + dataX.push_back(x); + dataY.push_back(yd); + dataRY.push_back(y-yd); + // calculate a simple type of histogram in a std:map, bins are 1/4=0.25 wide + const double hbin=std::round((y-yd)*4.0)/4.0; + if (histogram.find(hbin)==histogram.end()) { + histogram[hbin]=0; + } else { + histogram[hbin]++; + } + } + + // 5. and add the data to the datastore + size_t cX=ds->addCopiedColumn(dataX, "dataX"); + size_t cY=ds->addCopiedColumn(dataY, "dataY"); + size_t cRY=ds->addCopiedColumn(dataRY, "residY"); + std::pair cH=ds->addCopiedMap(histogram, "histX", "histY"); + + // 5.1 plot of the data + JKQTPxyLineGraph* graphD=new JKQTPxyLineGraph(plotMain); + graphD->set_xColumn(cX); + graphD->set_yColumn(cY); + graphD->set_drawLine(false); + graphD->set_symbol(JKQTPcross); + graphD->set_symbolSize(10); + graphD->set_title("measurement data"); + plotMain->addGraph(graphD); + + // 5.2 plot of the graph as an interpreted function, set as string "2*(1+cos(x))" + JKQTPxParsedFunctionLineGraph* graphFit=new JKQTPxParsedFunctionLineGraph(plotMain); + graphFit->set_function("2*(1+cos(x))"); + graphFit->set_title("fit"); + plotMain->addGraph(graphFit); + + // 5.3 residuals plot + JKQTPxyLineGraph* graphResid=new JKQTPxyLineGraph(plotResid); + graphResid->set_xColumn(cX); + graphResid->set_yColumn(cRY); + graphResid->set_drawLine(false); + graphResid->set_symbol(JKQTPplus); + graphResid->set_symbolSize(10); + graphResid->set_drawLine(true); + graphResid->set_lineWidth(0.5); + graphResid->set_title("residuals"); + plotResid->addGraph(graphResid); + + // 5.3 residual histogram plot + JKQTPbarHorizontalGraph* graphResidHist=new JKQTPbarHorizontalGraph(plotResidHist); + graphResidHist->set_xColumn(cH.second); + graphResidHist->set_yColumn(cH.first); + graphResidHist->set_title("histogram"); + plotResidHist->addGraph(graphResidHist); + + // 6.1 axis labels, distributed over the several plots + plotMain->get_yAxis()->set_axisLabel("y axis"); + plotResid->get_xAxis()->set_axisLabel("x axis"); + plotResid->get_yAxis()->set_axisLabel("residuals"); + plotResidHist->get_xAxis()->set_axisLabel("frequency"); + // 6.2 switch off the tick labels on the axes that directly face another plot + plotMain->get_xAxis()->set_drawMode1(JKQTPCADMticks); + plotResidHist->get_yAxis()->set_drawMode1(JKQTPCADMticks); + // 6.3 show tick labels on the rhs y-axis of the residual histogram plot + plotResidHist->get_yAxis()->set_drawMode2(JKQTPCADMticksAndLabels); + // 6.4 hide keys in all plots but the main plot + plotResid->get_plotter()->set_showKey(false); + plotResidHist->get_plotter()->set_showKey(false); + // 6.5 hide position label and toolbars in the plots except main plot + plotResid->set_displayToolbar(false); + plotResid->set_displayMousePosition(false); + plotResidHist->set_displayToolbar(false); + plotResidHist->set_displayMousePosition(false); + plotMain->set_toolbarAlwaysOn(true); + + + // 7. scale plots automatically to data + plotResid->zoomToFit(); + plotResidHist->zoomToFit(); + plotMain->zoomToFit(); + + // 8. show plotter and make it a decent size + mainWidget.show(); + mainWidget.move(32,32); + mainWidget.resize(800,600); + + return app.exec(); +} diff --git a/test/test_multiplot/test_multiplot.pro b/test/test_multiplot/test_multiplot.pro new file mode 100644 index 0000000000..c48573fe36 --- /dev/null +++ b/test/test_multiplot/test_multiplot.pro @@ -0,0 +1,22 @@ +# source code for this simple demo +SOURCES = test_multiplot.cpp + +# configure Qt +CONFIG += qt +QT += core gui xml svg +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport + +# output executable name +TARGET = test_multiplot + + +# include JKQtPlotter source code +DEPENDPATH += . ../../lib +INCLUDEPATH += ../../lib +CONFIG (debug, debug|release):LIBS += -L../../lib/debug -ljkqtplotterlib +CONFIG (release):LIBS += -L../../lib/release -ljkqtplotterlib + + +# here you can activate some debug options +#DEFINES += SHOW_JKQTPLOTTER_DEBUG +#DEFINES += JKQTBP_AUTOTIMER diff --git a/test/test_multiplot/test_multiplot_and_lib.pro b/test/test_multiplot/test_multiplot_and_lib.pro new file mode 100644 index 0000000000..83fc904dae --- /dev/null +++ b/test/test_multiplot/test_multiplot_and_lib.pro @@ -0,0 +1,8 @@ +TEMPLATE = subdirs + +SUBDIRS += jkqtplotterlib test_multiplot + +jkqtplotterlib.file = ../../lib/jkqtplotterlib.pro + +test_multiplot.file=$$PWD/test_multiplot.pro +test_multiplot.depends = jkqtplotterlib