2019-01-19 16:40:52 +08:00
/*!
\page exampleTutorialProjects Example & Tutorial Projects
This section assembles some simple examples of usage.
You can find more (complex) examples for the classes in this repository in the subfolder "test".
All test-projects are Qt-projects that use qmake to build. You can load them into QtCreator easily.
2022-08-08 00:00:05 +08:00
\tableofcontents
\section jkqtp_extut_jkqtplotter Examples&Tutorials for JKQTPlotter
2019-01-19 16:40:52 +08:00
\subsection jkqtp_extut_plotstyles Different Plot Data Styles
<table>
<tr><th>Screenshot<th>Description<th>Notes
2022-08-27 04:32:48 +08:00
<tr><td> \image html simpletest_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterSimpleTest
2022-08-26 18:43:00 +08:00
<td> `JKQTPXYLineGraph` <br> C++-style QVector arrays of data
<tr><td> \image html scatter_small.png
<td> \subpage JKQTPlotterscatter
<td> `JKQTPXYScatterGraph` <br> Iterator-Interface for JKQTDatastore
2022-09-08 03:38:29 +08:00
<tr><td> \image html scatter_customsymbol_small.png
<td> \subpage JKQTPlotterscatterCustomSymbol
<td> `JKQTPXYScatterGraph` <br>custom symbols JKQTPCharacterSymbol, JKQTPFilledCharacterSymbol, JKQTPRegisterCustomGraphSymbol()<br> Iterator-Interface for JKQTDatastore
2019-06-21 04:24:47 +08:00
<tr><td> \image html speed_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterSpeedTest
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYLineGraph` <br> external `std::array<double,N>` data, not owned by datastore <br> live-data, measure plotting speed <br> tipps to increas plotting speed
2019-06-21 04:24:47 +08:00
<tr><td> \image html symbols_and_styles_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterSymbolsAndStyles
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYLineGraph` <br> C++ vector of data <br> setting line styles and symbol styles <br> automatic graph coloring
2019-06-21 04:24:47 +08:00
<tr><td> \image html stepplots_small.png
2019-04-22 19:27:50 +08:00
<td> \subpage JKQTPlotterSpecialStepLinePlot
<td> `JKQTPSpecialLineHorizontalGraph` <br> C++ vector of data <br> different step/special line modes, filled and line-only
2019-06-21 04:24:47 +08:00
<tr><td> \image html symbols_and_errors_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterSymbolsErrors
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYLineErrorGraph` <br> C-style arrays of data
2019-06-21 04:24:47 +08:00
<tr><td> \image html errorbarstyles_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterErrorBarStyles
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYLineErrorGraph` <br> different styles of error indicators for x- and y-errors <br> C++-style QVector for data <br> styling error indicators <br> moving key and formatting plotter grid
2019-06-21 04:24:47 +08:00
<tr><td> \image html barchart_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterBarcharts
2019-01-20 17:49:29 +08:00
<td> `JKQTPBarVerticalGraph` <br> C-style arrays of data
2022-08-29 04:48:14 +08:00
<tr><td> \image html stackedbars_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterStackedBarChart
2019-01-20 17:49:29 +08:00
<td> `JKQTPBarVerticalStackableGraph`, `JKQTPBarHorizontalStackableGraph` <br> C++-style vectors of data
2022-05-12 04:55:23 +08:00
<tr><td> \image html filledgraphs_small.png
<td> \subpage JKQTPlotterFilledGraphs
<td> `JKQTPFilledCurveXGraph`/`JKQTPFilledCurveYGraph` <br> setting/altering data in `JKQTPDatstore` directly <br> transparent plots <br> calculating histograms
<tr><td> \image html wiggleplots_small.png
<td> \subpage JKQTPlotterWigglePlots
<td> `JKQTPFilledCurveXGraph`/`JKQTPFilledCurveYGraph` <br> setting/altering data in `JKQTPDatstore` directly <br> data-depentend coloring <br> random-walks <br> seismographic data
2019-06-21 04:24:47 +08:00
<tr><td> \image html impulsesplot_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterImpulsePlots
2019-01-20 17:49:29 +08:00
<td> `JKQTPImpulsesVerticalGraph` and `JKQTPImpulsesHorizontalGraph` <br> C++-style QVector as plot data
2022-09-08 03:38:29 +08:00
<tr><td> \image html paramscatterplot_small.png
<td> \subpage JKQTPlotterParamScatter
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> modify scatter/points/line-graph properties by data
2022-09-08 03:38:29 +08:00
<tr><td> \image html paramscatterplot_customsymbol_small.png
<td> \subpage JKQTPlotterparamscatterCustomSymbol
<td> `JKQTPXYParametrizedScatterGraph` <br>custom and varying symbols using JKQTPRegisterCustomGraphSymbol()<br>iterator interface to `JKQTPDatastore`
2019-06-21 04:24:47 +08:00
<tr><td> \image html paramscatterplot_image_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterParamScatterImage
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> rectangular arrangement of scatters <br> generative computer graphics
2019-06-21 04:24:47 +08:00
<tr><td> \image html parametriccurve_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterParametricCurves
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYLineGraph` and `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> parametric curve plotting
2019-06-21 04:24:47 +08:00
<tr><td> \image html functionplot_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterFunctionPlots
2019-01-20 17:49:29 +08:00
<td> `JKQTPXFunctionLineGraph` <br> diretly plotting C/C++-functions
2019-06-21 04:24:47 +08:00
<tr><td> \image html parsedfunctionplot_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterParsedFunctionPlot
2019-01-20 17:49:29 +08:00
<td> `JKQTPXParsedFunctionLineGraph` <br> plotting functions with the internal math equation parser/evaluator
2020-09-05 05:41:23 +08:00
<tr><td> \image html evalcurve_small.png
<td> \subpage JKQTPlotterEvalCurves
<td> `JKQTPXYFunctionLineGraph`
2019-06-21 04:24:47 +08:00
<tr><td> \image html boxplot_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterBoxplotsGraphs
<td> `JKQTPBoxplotVerticalGraph`, `JKQTPBoxplotHorizontalGraph`, ...
2019-06-21 04:24:47 +08:00
<tr><td> \image html violinplot_small.png
2019-06-17 01:15:40 +08:00
<td> \subpage JKQTPlotterViolinplotGraphs
<td> `JKQTPViolinplotVerticalElement`, `JKQTPViolinplotHorizontalElement`, ...
2019-01-19 16:40:52 +08:00
</table>
2020-08-23 19:13:53 +08:00
\subsection jkqtp_extut_geometric Geometric Forms, Arrows, Annotaions ...
<table>
<tr><th> Screenshot <th> Description <th> Notes
<tr><td> \image html geometric_small.png
<td> \subpage JKQTPlotterGeometricGraphs
2020-09-21 19:15:57 +08:00
<td> `JKQTPGeometricPlotElement`, `JKQTPGeoArc`, `JKQTPGeoLine`, `JKQTPGeoRectangle`, ...
2020-08-23 19:13:53 +08:00
<tr><td> \image html geo_arrows_small.png
<td> \subpage JKQTPlotterGeometricArrows
<td> `JKQTPGeoArrow`, ...
2020-09-04 05:09:15 +08:00
<tr><td> \image html geo_simple_small.png
<td> \subpage JKQTPlotterGeometricGraphsSimple
<td> `JKQTPGeoEllipse`, `JKQTPGeoArc`, `JKQTPGeoChord`, `JKQTPGeoPie`
2020-08-23 19:13:53 +08:00
</table>
2019-01-19 16:40:52 +08:00
\subsection jkqtp_extut_keyaxesstyles Styling the Plot, Keys, Axes, ...
<table>
<tr><th> Screenshot <th> Description <th> Notes
2019-06-21 04:24:47 +08:00
<tr><td> \image html logaxes_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterLogAxes
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYLineGraph` and `JKQTPGeoText` <br> C++ vector of data <br> logarithmic axes and styling <br> plot line styles <br> internal LaTeX parser <br> add commenting text to a graph
2019-06-21 04:24:47 +08:00
<tr><td> \image html dateaxes_timeaxis_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterDateTimeAxes
2019-01-20 17:49:29 +08:00
<td> `JKQTPXYLineGraph` and `JKQTPFilledVerticalRangeGraph` <br> C++ vector of data <br> date/time axes <br> plot min/max range graph <br> internal LaTeX parser <br> data from CSV files
2019-11-24 19:43:37 +08:00
<tr><td> \image html advancedlineandfillstyling_small.png
2019-04-24 05:50:06 +08:00
<td> \subpage JKQTPlotterAdvancedLineAndFillStyling
<td> `JKQTPXYLineGraph`, `JKQTPSpecialLineHorizontalGraph` and `JKQTPBarVerticalGraph` <br> C++ vector of data <br> advanced line styling and filling
2019-05-11 21:56:11 +08:00
<tr><td> \image html test_styledboxplot_small.png
<td> \subpage JKQTPlotterBoxplotStyling
<td> Modifying different Aspects of the Styling of boxplots
<tr><td> \image html test_styling_small.png
<td> \subpage JKQTPlotterStyling
<td> Modifying different Aspects of the Styling of JKQTPlotter
2019-01-19 16:40:52 +08:00
</table>
\subsection jkqtp_extut_plotimagedata Image data Plots
<table>
<tr><th> Screenshot <th> Description <th> Notes
2019-06-21 04:24:47 +08:00
<tr><td> \image html rgbimageplot_qt_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterImagePlotQImageRGB
2019-02-10 05:17:01 +08:00
<td> `JKQTPImage` <br> `QImage` drawn onto a plot with arbitrary scaling <br> inverted coordinate axes
2019-06-21 04:24:47 +08:00
<tr><td> \image html imageplot_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterImagePlot
2019-01-19 16:40:52 +08:00
<td> `JKQTPColumnMathImage` <br> image data copied from C-style row-major array into a single column of the internal datastore <br> Describes several options of the image plotting classes (different ways of color coding, what to do with data above/below the limits etc.)
* reworked color-palette-system:
1. added several new (JKQTPMathImageBone, JKQTPMathImageCool, JKQTPMathImageCopper, JKQTPMathImageAutumn, JKQTPMathImageSeismic, JKQTPMathImageTerrain, JKQTPMathImageViridis, JKQTPMathImageMagma, JKQTPMathImageInferno, JKQTPMathImagePlasma)
2. reworked LUT-types (now a QVector, instead of a C-array, suing malloc)
3. reworked available functions to build LUTs (cleanup, more options, clearer names)
4. added functions to load palettes from files
5. Improved documentation
* added example for user-controlled color palettes
2019-07-28 20:59:09 +08:00
<tr><td> \image html imageplot_userpal_program_small.png
<td> \subpage JKQTPlotterImagePlotUserPalette
<td> `JKQTPColumnMathImage` <br> user-defines palettes <br> palettes from files
2019-06-21 04:24:47 +08:00
<tr><td> \image html imageplot_modifier_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterImagePlotModifier
2019-01-19 16:40:52 +08:00
<td> `JKQTPColumnMathImage` <br> image data copied from C-style row-major array into a single column of the internal datastore <br> Image is modified by a second image to display two data dimensions at the same time
2019-06-21 04:24:47 +08:00
<tr><td> \image html imageplot_nodatastore_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterImagePlotNoDatastore
2019-01-19 16:40:52 +08:00
<td> `JKQTPMathImage` <br> image data in a C-style row-major array, not using internal datastore
2019-06-21 04:24:47 +08:00
<tr><td> \image html rgbimageplot_small.png
2019-02-10 05:17:01 +08:00
<td> \subpage JKQTPlotterRGBImagePlot
<td> `JKQTPColumnRGBMathImage` <br> image data in a C-style row-major array, not using internal datastore <br> RGB/CMY color compositing
2019-11-16 20:50:43 +08:00
<tr><td> \image html imageplot_opencv_small.png
<td> \subpage JKQTPlotterImagePlotOpenCV
2019-01-19 16:40:52 +08:00
<td> `JKQTPColumnMathImage` <br> image data copied from OpenCV cv::Mat-structure into a single column of the internal datastore
2019-11-16 20:50:43 +08:00
<tr><td> \image html rgbimageplot_opencv_small.png
<td> \subpage JKQTPlotterImagePlotRGBOpenCV
2019-02-10 05:17:01 +08:00
<td> `JKQTPColumnRGBMathImage` <br> image data copied from OpenCV cv::Mat-structure into three columns of the internal datastore <br> inverted coordinate axes
2019-11-16 20:50:43 +08:00
<tr><td> \image html imageplot_cimg_small.png
2019-11-18 23:09:22 +08:00
<td> \subpage JKQTPlotterImagePlotCImg
2019-11-16 20:50:43 +08:00
<td> `JKQTPColumnMathImage` <br> image data copied from CImg datastructure into a single column of the internal datastore
<tr><td> \image html rgbimageplot_cimg_small.png
2019-11-18 23:09:22 +08:00
<td> \subpage JKQTPlotterImagePlotRGBCImg
2019-11-16 20:50:43 +08:00
<td> `JKQTPColumnRGBMathImage` <br> image data copied from CImg datastructure into three columns of the internal datastore <br> inverted coordinate axes
2019-06-21 04:24:47 +08:00
<tr><td> \image html contourplot_small.png
2019-05-19 04:41:38 +08:00
<td> \subpage JKQTPlotterContourPlot
<td> `JKQTPColumnContourPlot` <br> image data edited inside JKQTPDatastore
2019-01-19 16:40:52 +08:00
</table>
2019-02-08 00:24:46 +08:00
2019-01-19 16:40:52 +08:00
2019-01-25 05:49:10 +08:00
\subsection jkqtp_extut_guitools GUI Tools
2019-01-19 16:40:52 +08:00
<table>
<tr><th> Screenshot <th> Description <th> Notes
2019-06-21 04:24:47 +08:00
<tr><td> \image html ui_small.png
2019-01-25 05:49:10 +08:00
<td> \subpage JKQTPlotterQtCreator
2019-01-20 23:15:10 +08:00
<td> using Qt Form Designer <br> parsed function plots (`JKQTPXParsedFunctionLineGraph`)
2019-02-04 04:00:15 +08:00
<tr><td> \image html jkqtplotter_test_user_interaction_small.gif
2019-01-25 05:49:10 +08:00
<td> \subpage JKQTPlotterUserInteraction
<td> different possibilities of user-interaction in JKQtPlotter
</table>
\subsection jkqtp_extut_guitoolslayout Layout & Styling
<table>
<tr><th> Screenshot <th> Description <th> Notes
2022-08-30 03:46:38 +08:00
<tr><td> \image html multiplot_small.png
2019-01-25 05:49:10 +08:00
<td> \subpage JKQTPlotterMultiPlotLayout
<td> Combining plots in Qt Layouts <br> linking plot axes <br> copy data from a `std::map` int the datastore <br> print plots/print preview
2019-02-04 04:00:15 +08:00
<tr><td> \image html test_styling_small.png
<td> \subpage JKQTPlotterStyling
<td> Modifying different Aspects of the Styling of JKQTPlotter
2019-11-24 19:43:37 +08:00
<tr><td> \image html imageplot_userpal_program_small.png
* reworked color-palette-system:
1. added several new (JKQTPMathImageBone, JKQTPMathImageCool, JKQTPMathImageCopper, JKQTPMathImageAutumn, JKQTPMathImageSeismic, JKQTPMathImageTerrain, JKQTPMathImageViridis, JKQTPMathImageMagma, JKQTPMathImageInferno, JKQTPMathImagePlasma)
2. reworked LUT-types (now a QVector, instead of a C-array, suing malloc)
3. reworked available functions to build LUTs (cleanup, more options, clearer names)
4. added functions to load palettes from files
5. Improved documentation
* added example for user-controlled color palettes
2019-07-28 20:59:09 +08:00
<td> \subpage JKQTPlotterImagePlotUserPalette
<td> `JKQTPColumnMathImage` <br> user-defines palettes <br> palettes from files
2019-01-20 23:15:10 +08:00
</table>
2019-05-30 04:40:02 +08:00
\subsection jkqtp_extut_datamanagement Data Management & Statistics
2019-05-13 04:22:48 +08:00
<table>
<tr><th> Screenshot <th> Description <th> Notes
2019-06-21 04:24:47 +08:00
<tr><td> \image html datastore_small.png
2019-05-18 02:46:52 +08:00
<td> \subpage JKQTPlotterBasicJKQTPDatastore
<td> Basic Data Management with JKQTPDatastore <br/> Copying data into a JKQTPDatastore <br/> Editing data inside a JKQTPDatastore <br/> Editing Image Data in a JKQTPDatastore
2019-06-21 04:24:47 +08:00
<tr><td> \image html datastore_iterators_small.png
2019-05-31 20:01:49 +08:00
<td> \subpage JKQTPlotterBasicJKQTPDatastoreIterators
<td> Iterator-based Data Management with JKQTPDatastore
2019-06-21 04:24:47 +08:00
<tr><td> \image html datastore_statistics_small.png
2019-05-30 04:40:02 +08:00
<td> \subpage JKQTPlotterBasicJKQTPDatastoreStatistics
2019-05-31 20:01:49 +08:00
<td> Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>using the internal statistics library (see \ref jkqtptools_math_statistics )<br>basic statistics (mean, standard deviation, ...)<br>boxplots<br>histograms<br>kernel density estimates (KDE)
2019-06-21 04:24:47 +08:00
<tr><td> \image html datastore_regression_small.png
2019-06-02 00:15:04 +08:00
<td> \subpage JKQTPlotterBasicJKQTPDatastoreRegression
<td> Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>using the internal statistics library<br>Regression Analysis (with the Statistics Library)<br>robust regression (IRLS)<br>weighted regression<br>non-linear regression<br>polynomial fitting
2019-06-21 04:24:47 +08:00
<tr><td> \image html datastore_groupedstat_small.png
2019-06-13 16:27:06 +08:00
<td> \subpage JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat
<td> Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>grouped statistics<br>error indicators from data<br>boxplots
2019-06-21 04:24:47 +08:00
<tr><td> \image html datastore_statistics_2d_small.png
2019-06-11 22:59:19 +08:00
<td> \subpage JKQTPlotterBasicJKQTPDatastoreStatistics2D
<td> Advanced 2-Dimensional Statistical Computation with JKQTPDatastore<br>using the internal statistics library (see \ref jkqtptools_math_statistics )<br>histograms<br>kernel density estimates (KDE)
2019-05-13 04:22:48 +08:00
</table>
2019-01-20 23:15:10 +08:00
\subsection jkqtp_extut_complexexamples More Complex Examples
<table>
<tr><th> Screenshot <th> Description <th> Notes
2022-08-30 03:46:38 +08:00
<tr><td> \image html multiplot_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTPlotterMultiPlotLayout
<td> Combining plots in Qt Layouts <br> linking plot axes <br> copy data from a `std::map` int the datastore <br> print plots/print preview
<tr><td> \image html test_distributionplot_small.png
<td> \subpage JKQTPlotterDistributionPlot
<td> Combines several different graphs to draw random values, their distribution and some statistical properties
2020-09-12 05:22:04 +08:00
<tr><td> \image html mandelbrot_small.png
<td> \subpage JKQTPlotterMandelbrot
2020-09-12 05:27:31 +08:00
<td> Allows to zoom into the Mandelbrot Set, using the different Zooming methods of JKQTPlotter
2019-01-19 16:40:52 +08:00
</table>
2022-08-08 00:00:05 +08:00
2019-01-19 16:40:52 +08:00
2022-08-08 00:00:05 +08:00
\subsection jkqtp_extut_cmake_build CMake Build System
<table>
<tr><th> Screenshot <th> Description <th> Notes
<tr><td> \image html jkqtplotter_cmakelink_small.png
<td> \subpage JKQTCMakeLinkExample
<td> explains how to link against JKQTPlotter with CMake
</table>
2019-01-19 16:40:52 +08:00
2022-08-08 00:00:05 +08:00
\section jkqtp_extut_jkqtmathtext Examples for JKQTMathText
2019-01-19 16:40:52 +08:00
<table>
<tr><th> Screenshot <th> Description <th> Notes
2022-07-24 20:50:28 +08:00
<tr><td> \image html jkqtmathtext_simpletest_small.png
2019-01-20 17:49:29 +08:00
<td> \subpage JKQTMathTextSimpleExample
<td> JKQTMathText<br>render LaTeX markup (Schrödinger's equation)
2022-08-08 00:00:05 +08:00
<tr><td> \image html jkqtmathtext_render_small.png
<td> \subpage JKQTMathTextRenderCmdLineTool
<td> JKQTMathText<br>command-line utility
2022-07-24 20:50:28 +08:00
<tr><td> \image html jkqtmathtext_testapp_small.png
2019-01-20 23:15:10 +08:00
<td> \subpage JKQTMathTextTestApp
<td> JKQTMathText<br>render LaTeX markup
2019-01-19 16:40:52 +08:00
</table>
2019-06-22 22:39:53 +08:00
2022-08-08 00:00:05 +08:00
\section jkqtp_extut_jkqtfastplotter Examples for JKQTFastPlotter
2019-01-19 16:40:52 +08:00
2019-06-22 22:39:53 +08:00
<table>
<tr><th> Screenshot <th> Description <th> Notes
2022-08-08 00:00:05 +08:00
<tr><td> \image html jkqtfastplotter_test_small.png
<td> \subpage JKQTFastPlotterTest
<td> JKQTFastPlotter
2019-06-22 22:39:53 +08:00
</table>
2019-01-19 16:40:52 +08:00
2022-08-08 00:00:05 +08:00
\section jkqtp_extut_tools Tool Programs
<table>
<tr><th> Screenshot <th> Name <th> Notes/Description
<tr><td> \image html jkqtmathtext_render_small.png
<td> \subpage JKQTMathTextRenderCmdLineTool
2022-09-03 04:59:41 +08:00
<td> uses JKQTMathText to render LaTeX Markup into an image file and used to render different images for the documentation
<tr><td> \image html jkqtplotter_doc_imagegenerator_small.png
<td> \subpage JKQTPlotterDocImageRenderCmdLineTool
<td> uses JKQTPlotter to render different images for the documentation
2022-08-08 00:00:05 +08:00
</table>
2019-01-19 16:40:52 +08:00
*/