mirror of
https://github.com/jkriege2/JKQtPlotter.git
synced 2024-12-24 09:31:40 +08:00
using CMake now to build examples
restructuring/massive renaming to make this possible
This commit is contained in:
parent
fae6b28a58
commit
7311948d53
@ -19,11 +19,15 @@ endif()
|
||||
if(NOT DEFINED BUILD_EXAMPLES)
|
||||
option(BUILD_EXAMPLES "Build examples" ON)
|
||||
endif()
|
||||
if(NOT DEFINED BUILD_HAS_OPENCV)
|
||||
option(BUILD_HAS_OPENCV "OpenCV available?" OFF)
|
||||
endif()
|
||||
if(NOT DEFINED LIB_INSTALL)
|
||||
option(LIB_INSTALL "Install library" ON)
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||
option(CMAKE_INSTALL_PREFIX "Install directory" ${CMAKE_CURRENT_SOURCE_DIR}/instal)
|
||||
option(CMAKE_INSTALL_PREFIX "Install directory" ${CMAKE_CURRENT_SOURCE_DIR}/install)
|
||||
endif()
|
||||
|
||||
|
||||
@ -36,9 +40,13 @@ if (NOT WIN32)
|
||||
include(GNUInstallDirs)
|
||||
endif(NOT WIN32)
|
||||
|
||||
# Instruct CMake to run moc+rcc automatically when needed.
|
||||
# Instruct CMake to run moc+rcc+uic automatically when needed.
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
# Find includes in the build directories
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
# Set a default build type if none was specified
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
@ -61,7 +69,8 @@ if (NOT CMAKE_INSTALL_INCLUDEDIR)
|
||||
endif()
|
||||
|
||||
|
||||
find_package(Qt5 5.0 REQUIRED Core Gui Widgets PrintSupport)
|
||||
find_package(Qt5 5.0 REQUIRED Core Gui Widgets PrintSupport Svg Xml OpenGl)
|
||||
|
||||
|
||||
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
@ -93,8 +102,16 @@ endif()
|
||||
|
||||
|
||||
|
||||
# place all DLLs and EXEs in the subdirectory output of the top level directory of the build tree
|
||||
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output)
|
||||
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output)
|
||||
|
||||
|
||||
|
||||
add_subdirectory(lib)
|
||||
if(BUILD_EXAMPLES)
|
||||
#add_subdirectory(examples)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
@ -15,17 +15,17 @@ SUBDIRS += jkqtplotterlib \
|
||||
jkqtfastplotter_test
|
||||
|
||||
|
||||
jkqtplotterlib.file = staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
jkqtplotterlib_sharedlib.file = sharedlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
jkqtplotterlib.file = qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
jkqtplotterlib_sharedlib.file = qmake/sharedlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
jkqtmathtextlib.file = staticlib/jkqtmathtextlib/jkqtmathtextlib.pro
|
||||
jkqtmathtextlib_sharedlib.file = sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro
|
||||
jkqtmathtextlib.file = qmake/staticlib/jkqtmathtextlib/jkqtmathtextlib.pro
|
||||
jkqtmathtextlib_sharedlib.file = qmake/sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro
|
||||
|
||||
jkqtpcommonlib.file = staticlib/jkqtpcommonlib/jkqtpcommonlib.pro
|
||||
jkqtpcommonlib_sharedlib.file = sharedlib/jkqtpcommonlib/jkqtpcommonlib.pro
|
||||
jkqtpcommonlib.file = qmake/staticlib/jkqtpcommonlib/jkqtpcommonlib.pro
|
||||
jkqtpcommonlib_sharedlib.file = qmake/sharedlib/jkqtpcommonlib/jkqtpcommonlib.pro
|
||||
|
||||
jkqtfastplotterlib.file = staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro
|
||||
jkqtfastplotterlib_sharedlib.file = sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro
|
||||
jkqtfastplotterlib.file = qmake/staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro
|
||||
jkqtfastplotterlib_sharedlib.file = qmake/sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro
|
||||
|
||||
jkqtmathtext_simpletest.subdir = examples/jkqtmathtext_simpletest
|
||||
jkqtmathtext_simpletest.depends = jkqtmathtextlib
|
||||
@ -44,13 +44,13 @@ jkqtfastplotter_test.depends = jkqtfastplotterlib
|
||||
|
||||
defineTest(addSimpleTest) {
|
||||
test_name = $$1
|
||||
SUBDIRS += jkqtplotter_simpletest_$${test_name}
|
||||
SUBDIRS += jkqtptst_$${test_name}
|
||||
|
||||
jkqtplotter_simpletest_$${test_name}.file = examples/simpletest_$${test_name}/jkqtplotter_simpletest_$${test_name}.pro
|
||||
jkqtplotter_simpletest_$${test_name}.depends = jkqtplotterlib
|
||||
jkqtptst_$${test_name}.file = examples/$${test_name}/$${test_name}.pro
|
||||
jkqtptst_$${test_name}.depends = jkqtplotterlib
|
||||
|
||||
export (jkqtplotter_simpletest_$${test_name}.file)
|
||||
export (jkqtplotter_simpletest_$${test_name}.depends)
|
||||
export (jkqtptst_$${test_name}.file)
|
||||
export (jkqtptst_$${test_name}.depends)
|
||||
|
||||
export (SUBDIRS)
|
||||
}
|
||||
@ -96,7 +96,7 @@ defineTest(addTest) {
|
||||
test_name = $$1
|
||||
SUBDIRS += test_$${test_name}
|
||||
|
||||
test_$${test_name}.file = examples/test_$${test_name}/test_$${test_name}.pro
|
||||
test_$${test_name}.file = examples/$${test_name}/test_$${test_name}.pro
|
||||
test_$${test_name}.depends = jkqtplotterlib
|
||||
|
||||
export (test_$${test_name}.file)
|
||||
|
@ -61,8 +61,8 @@ The [Screenshots-page](./screenshots/) contains several screenshots, partly take
|
||||
## Building
|
||||
Building instructions can be found here:
|
||||
- include necessary files into QMake project: [`./lib/*.pri`](./lib/README.md)
|
||||
- [build a static library](./staticlib): [`./staticlib/*.pro`](./staticlib/README.md)
|
||||
- [build a shared library (DLL, SO, ...)](./sharedlib): [`./sharedlib/*.pro`](./sharedlib/README.md)
|
||||
- [build a static library](./staticlib): [`./qmake/staticlib/*.pro`](./qmake/staticlib/README.md)
|
||||
- [build a shared library (DLL, SO, ...)](./sharedlib): [`./qmake/sharedlib/*.pro`](./qmake/sharedlib/README.md)
|
||||
|
||||
|
||||
## Continuous Integration Status
|
||||
|
@ -21,9 +21,9 @@ include(<PATHTOJKQTPLOTTERDIR>/lib/jkqtplotter.pri)
|
||||
\subsection page_buildinstructions_QMAKESTATIC QMake Static Library
|
||||
|
||||
There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as static link library:
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/staticlib/jkqtplotterlib/jkqtplotterlib.pro">staticlib/jkqtplotterlib/jkqtplotterlib.pro</a> builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as static link library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/staticlib/jkqtmathtextlib/jkqtmathtextlib.pro">staticlib/jkqtmathtextlib/jkqtmathtextlib.pro</a> builds only JKQTMathText as static link library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro">staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro</a> builds only JKQTFastPlotter as static link library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro">qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro</a> builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as static link library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/qmake/staticlib/jkqtmathtextlib/jkqtmathtextlib.pro">qmake/staticlib/jkqtmathtextlib/jkqtmathtextlib.pro</a> builds only JKQTMathText as static link library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/qmake/staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro">qmake/staticlib/jkqtfastplotterlib/jkqtfastplotterlib.pro</a> builds only JKQTFastPlotter as static link library
|
||||
.
|
||||
They will produce a static link library that you can include into your projects, e.g. with the following QMake-snippet:
|
||||
|
||||
@ -31,14 +31,14 @@ They will produce a static link library that you can include into your projects,
|
||||
# include JKQTPlotter library
|
||||
DEPENDPATH += \
|
||||
<PATHTOJKQTPLOTTERDIR>/lib \
|
||||
<PATHTOJKQTPLOTTERDIR>/staticlib/jkqtplotterlib
|
||||
<PATHTOJKQTPLOTTERDIR>/qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += <PATHTOJKQTPLOTTERDIR>/lib
|
||||
CONFIG (debug, debug|release) {
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/staticlib/jkqtplotterlib/debug
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/qmake/staticlib/jkqtplotterlib/debug
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/staticlib/jkqtplotterlib/release
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/qmake/staticlib/jkqtplotterlib/release
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
\endcode
|
||||
|
||||
@ -47,7 +47,7 @@ This snippet assumes that you built the libraries with the provided `.PRO`-files
|
||||
TEMPLATE = subdirs
|
||||
|
||||
# the (static library version) of JKQTPlotter
|
||||
jkqtplotterlib_static.file = ../../staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
jkqtplotterlib_static.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
# your project file, with declared dependencies on jkqtplotterlib_static
|
||||
test_styling.file=$$PWD/test_styling.pro
|
||||
@ -62,9 +62,9 @@ SUBDIRS += jkqtplotterlib_static test_styling
|
||||
\subsection page_buildinstructions_QMAKEDYNAMIC QMake Dynamic Library
|
||||
|
||||
There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as shred library:
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/sharedlib/jkqtplotterlib/jkqtplotterlib.pro">sharedlib/jkqtplotterlib/jkqtplotterlib.pro</a> builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as shared library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro">sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro</a> builds only JKQTMathText as shared library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro">sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro</a> builds only JKQTFastPlotter as shared library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/qmake/sharedlib/jkqtplotterlib/jkqtplotterlib.pro">qmake/sharedlib/jkqtplotterlib/jkqtplotterlib.pro</a> builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as shared library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/qmake/sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro">qmake/sharedlib/jkqtmathtextlib/jkqtmathtextlib.pro</a> builds only JKQTMathText as shared library
|
||||
- <a href="https://github.com/jkriege2/JKQtPlotter/blob/master/qmake/sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro">qmake/sharedlib/jkqtfastplotterlib/jkqtfastplotterlib.pro</a> builds only JKQTFastPlotter as shared library
|
||||
.
|
||||
They will produce a dynamic link library that you can include into your projects, e.g. with the following QMake-snippet:
|
||||
|
||||
@ -72,24 +72,24 @@ They will produce a dynamic link library that you can include into your projects
|
||||
# include JKQTPlotter library
|
||||
DEPENDPATH += \
|
||||
<PATHTOJKQTPLOTTERDIR>/lib \
|
||||
<PATHTOJKQTPLOTTERDIR>/sharedlib/jkqtplotterlib
|
||||
<PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib
|
||||
INCLUDEPATH += <PATHTOJKQTPLOTTERDIR>/lib
|
||||
CONFIG (debug, debug|release) {
|
||||
# ensure that DLLs are copied to the output directory
|
||||
install_jkqtplotter_dll.files = <PATHTOJKQTPLOTTERDIR>/sharedlib/jkqtplotterlib/debug/jkqtplotterlib_debug.*
|
||||
install_jkqtplotter_dll.files = <PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib/debug/jkqtplotterlib_debug.*
|
||||
install_jkqtplotter_dll.path = $$OUT_PWD
|
||||
INSTALLS += install_jkqtplotter_dll
|
||||
# link agains DLLs
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/sharedlib/jkqtplotterlib/debug
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/sharedlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib/debug
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
# ensure that DLLs are copied to the output directory
|
||||
install_jkqtplotter_dll.files = <PATHTOJKQTPLOTTERDIR>/sharedlib/jkqtplotterlib/release/jkqtplotterlib.*
|
||||
install_jkqtplotter_dll.files = <PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib/release/jkqtplotterlib.*
|
||||
install_jkqtplotter_dll.path = $$OUT_PWD
|
||||
INSTALLS += install_jkqtplotter_dll
|
||||
# link agains DLLs
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/sharedlib/jkqtplotterlib/release
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/sharedlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
DEPENDPATH += <PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib/release
|
||||
LIBS += -L<PATHTOJKQTPLOTTERDIR>/qmake/sharedlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
\endcode
|
||||
|
||||
@ -98,7 +98,7 @@ This snippet assumes that you built the libraries with the provided `.PRO`-files
|
||||
TEMPLATE = subdirs
|
||||
|
||||
# the (shared library version) of JKQTPlotter
|
||||
jkqtplotterlib_shared.file = ../../sharedlib/jkqtplotterlib.pro
|
||||
jkqtplotterlib_shared.file = ../../qmake/sharedlib/jkqtplotterlib.pro
|
||||
|
||||
# your project file, with declared dependencies on jkqtplotterlib_shared
|
||||
test_styling.file=$$PWD/test_styling.pro
|
||||
|
@ -14,55 +14,55 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
<tr><td> \image html jkqtplotter_simpletest1_small.png
|
||||
<td> \subpage JKQTPlotterSimpleTest
|
||||
<td> `JKQTPXYLineGraph` <br> C++-style QVector arrays of data
|
||||
<tr><td> \image html jkqtplotter_simpletest_speed_small.png
|
||||
<tr><td> \image html speed_small.png
|
||||
<td> \subpage JKQTPlotterSpeedTest
|
||||
<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
|
||||
<tr><td> \image html jkqtplotter_simpletest_symbols_and_styles_small.png
|
||||
<tr><td> \image html symbols_and_styles_small.png
|
||||
<td> \subpage JKQTPlotterSymbolsAndStyles
|
||||
<td> `JKQTPXYLineGraph` <br> C++ vector of data <br> setting line styles and symbol styles <br> automatic graph coloring
|
||||
<tr><td> \image html jkqtplotter_simpletest_stepplots_small.png
|
||||
<tr><td> \image html stepplots_small.png
|
||||
<td> \subpage JKQTPlotterSpecialStepLinePlot
|
||||
<td> `JKQTPSpecialLineHorizontalGraph` <br> C++ vector of data <br> different step/special line modes, filled and line-only
|
||||
<tr><td> \image html jkqtplotter_simpletest_symbols_and_errors_small.png
|
||||
<tr><td> \image html symbols_and_errors_small.png
|
||||
<td> \subpage JKQTPlotterSymbolsErrors
|
||||
<td> `JKQTPXYLineErrorGraph` <br> C-style arrays of data
|
||||
<tr><td> \image html jkqtplotter_simpletest_errorbarstyles_small.png
|
||||
<tr><td> \image html errorbarstyles_small.png
|
||||
<td> \subpage JKQTPlotterErrorBarStyles
|
||||
<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
|
||||
<tr><td> \image html jkqtplotter_simpletest_barchart_small.png
|
||||
<tr><td> \image html barchart_small.png
|
||||
<td> \subpage JKQTPlotterBarcharts
|
||||
<td> `JKQTPBarVerticalGraph` <br> C-style arrays of data
|
||||
<tr><td> \image html JKQTPBarHorizontalGraphStacked_small.png
|
||||
<td> \subpage JKQTPlotterStackedBarChart
|
||||
<td> `JKQTPBarVerticalStackableGraph`, `JKQTPBarHorizontalStackableGraph` <br> C++-style vectors of data
|
||||
<tr><td> \image html jkqtplotter_simpletest_filledgraphs_small.png
|
||||
<tr><td> \image html filledgraphs_small.png
|
||||
<td> \subpage JKQTPlotterFilledGraphs
|
||||
<td> `JKQTPBarVerticalGraph` <br> setting/altering data in `JKQTPDatstore` directly <br> transparent plots <br> calculating histograms
|
||||
<tr><td> \image html jkqtplotter_simpletest_impulsesplot_small.png
|
||||
<tr><td> \image html impulsesplot_small.png
|
||||
<td> \subpage JKQTPlotterImpulsePlots
|
||||
<td> `JKQTPImpulsesVerticalGraph` and `JKQTPImpulsesHorizontalGraph` <br> C++-style QVector as plot data
|
||||
<tr><td> \image html jkqtplotter_simpletest_paramscatterplot_small.png
|
||||
<tr><td> \image html paramscatterplot_small.png
|
||||
<td> \subpage JKQTPlotterParamScatter
|
||||
<td> `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> modify scatter/points/line-graph properties by data
|
||||
<tr><td> \image html jkqtplotter_simpletest_paramscatterplot_image_small.png
|
||||
<tr><td> \image html paramscatterplot_image_small.png
|
||||
<td> \subpage JKQTPlotterParamScatterImage
|
||||
<td> `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> rectangular arrangement of scatters <br> generative computer graphics
|
||||
<tr><td> \image html jkqtplotter_simpletest_parametriccurve_small.png
|
||||
<tr><td> \image html parametriccurve_small.png
|
||||
<td> \subpage JKQTPlotterParametricCurves
|
||||
<td> `JKQTPXYLineGraph` and `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> parametric curve plotting
|
||||
<tr><td> \image html jkqtplotter_simpletest_functionplot_small.png
|
||||
<tr><td> \image html functionplot_small.png
|
||||
<td> \subpage JKQTPlotterFunctionPlots
|
||||
<td> `JKQTPXFunctionLineGraph` <br> diretly plotting C/C++-functions
|
||||
<tr><td> \image html jkqtplotter_simpletest_parsedfunctionplot_small.png
|
||||
<tr><td> \image html parsedfunctionplot_small.png
|
||||
<td> \subpage JKQTPlotterParsedFunctionPlot
|
||||
<td> `JKQTPXParsedFunctionLineGraph` <br> plotting functions with the internal math equation parser/evaluator
|
||||
<tr><td> \image html jkqtplotter_simpletest_geometric_small.png
|
||||
<tr><td> \image html geometric_small.png
|
||||
<td> \subpage JKQTPlotterGeometricGraphs
|
||||
<td> `JKQTPPlotObject`, `JKQTPGeoArc`, `JKQTPGeoLine`, `JKQTPGeoRectangle`, ...
|
||||
<tr><td> \image html jkqtplotter_simpletest_boxplot_small.png
|
||||
<tr><td> \image html boxplot_small.png
|
||||
<td> \subpage JKQTPlotterBoxplotsGraphs
|
||||
<td> `JKQTPBoxplotVerticalGraph`, `JKQTPBoxplotHorizontalGraph`, ...
|
||||
<tr><td> \image html jkqtplotter_simpletest_violinplot_small.png
|
||||
<tr><td> \image html violinplot_small.png
|
||||
<td> \subpage JKQTPlotterViolinplotGraphs
|
||||
<td> `JKQTPViolinplotVerticalElement`, `JKQTPViolinplotHorizontalElement`, ...
|
||||
</table>
|
||||
@ -72,13 +72,13 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
|
||||
<table>
|
||||
<tr><th> Screenshot <th> Description <th> Notes
|
||||
<tr><td> \image html jkqtplotter_simpletest_logaxes_small.png
|
||||
<tr><td> \image html logaxes_small.png
|
||||
<td> \subpage JKQTPlotterLogAxes
|
||||
<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
|
||||
<tr><td> \image html jkqtplotter_simpletest_dateaxes_timeaxis_small.png
|
||||
<tr><td> \image html dateaxes_timeaxis_small.png
|
||||
<td> \subpage JKQTPlotterDateTimeAxes
|
||||
<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
|
||||
<tr><td> \image html jkqtplotter_simpletest_advancedlineandfillstyling_small.png
|
||||
<tr><td> \image html advancedlineandfillstyling_small.png
|
||||
<td> \subpage JKQTPlotterAdvancedLineAndFillStyling
|
||||
<td> `JKQTPXYLineGraph`, `JKQTPSpecialLineHorizontalGraph` and `JKQTPBarVerticalGraph` <br> C++ vector of data <br> advanced line styling and filling
|
||||
<tr><td> \image html test_styledboxplot_small.png
|
||||
@ -95,28 +95,28 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
|
||||
<table>
|
||||
<tr><th> Screenshot <th> Description <th> Notes
|
||||
<tr><td> \image html jkqtplotter_simpletest_rgbimageplot_qt_small.png
|
||||
<tr><td> \image html rgbimageplot_qt_small.png
|
||||
<td> \subpage JKQTPlotterImagePlotQImageRGB
|
||||
<td> `JKQTPImage` <br> `QImage` drawn onto a plot with arbitrary scaling <br> inverted coordinate axes
|
||||
<tr><td> \image html jkqtplotter_simpletest_imageplot_small.png
|
||||
<tr><td> \image html imageplot_small.png
|
||||
<td> \subpage JKQTPlotterImagePlot
|
||||
<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.)
|
||||
<tr><td> \image html jkqtplotter_simpletest_imageplot_modifier_small.png
|
||||
<tr><td> \image html imageplot_modifier_small.png
|
||||
<td> \subpage JKQTPlotterImagePlotModifier
|
||||
<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
|
||||
<tr><td> \image html jkqtplotter_simpletest_imageplot_nodatastore_small.png
|
||||
<tr><td> \image html imageplot_nodatastore_small.png
|
||||
<td> \subpage JKQTPlotterImagePlotNoDatastore
|
||||
<td> `JKQTPMathImage` <br> image data in a C-style row-major array, not using internal datastore
|
||||
<tr><td> \image html jkqtplotter_simpletest_rgbimageplot_small.png
|
||||
<tr><td> \image html rgbimageplot_small.png
|
||||
<td> \subpage JKQTPlotterRGBImagePlot
|
||||
<td> `JKQTPColumnRGBMathImage` <br> image data in a C-style row-major array, not using internal datastore <br> RGB/CMY color compositing
|
||||
<tr><td> \image html jkqtplotter_simpletest_imageplot_opencv_small.png
|
||||
<tr><td> \image html imageplot_opencv_small.png
|
||||
<td> \subpage JKQTPlotterImagePlotOpenCV
|
||||
<td> `JKQTPColumnMathImage` <br> image data copied from OpenCV cv::Mat-structure into a single column of the internal datastore
|
||||
<tr><td> \image html jkqtplotter_simpletest_rgbimageplot_opencv_small.png
|
||||
<tr><td> \image html rgbimageplot_opencv_small.png
|
||||
<td> \subpage JKQTPlotterImagePlotRGBOpenCV
|
||||
<td> `JKQTPColumnRGBMathImage` <br> image data copied from OpenCV cv::Mat-structure into three columns of the internal datastore <br> inverted coordinate axes
|
||||
<tr><td> \image html jkqtplotter_simpletest_contourplot_small.png
|
||||
<tr><td> \image html contourplot_small.png
|
||||
<td> \subpage JKQTPlotterContourPlot
|
||||
<td> `JKQTPColumnContourPlot` <br> image data edited inside JKQTPDatastore
|
||||
</table>
|
||||
@ -127,7 +127,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
|
||||
<table>
|
||||
<tr><th> Screenshot <th> Description <th> Notes
|
||||
<tr><td> \image html jkqtplotter_simpletest_ui_small.png
|
||||
<tr><td> \image html ui_small.png
|
||||
<td> \subpage JKQTPlotterQtCreator
|
||||
<td> using Qt Form Designer <br> parsed function plots (`JKQTPXParsedFunctionLineGraph`)
|
||||
<tr><td> \image html jkqtplotter_test_user_interaction_small.gif
|
||||
@ -153,22 +153,22 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
|
||||
<table>
|
||||
<tr><th> Screenshot <th> Description <th> Notes
|
||||
<tr><td> \image html simpletest_datastore_small.png
|
||||
<tr><td> \image html datastore_small.png
|
||||
<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
|
||||
<tr><td> \image html simpletest_datastore_iterators_small.png
|
||||
<tr><td> \image html datastore_iterators_small.png
|
||||
<td> \subpage JKQTPlotterBasicJKQTPDatastoreIterators
|
||||
<td> Iterator-based Data Management with JKQTPDatastore
|
||||
<tr><td> \image html jkqtplotter_simpletest_datastore_statistics_small.png
|
||||
<tr><td> \image html datastore_statistics_small.png
|
||||
<td> \subpage JKQTPlotterBasicJKQTPDatastoreStatistics
|
||||
<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)
|
||||
<tr><td> \image html jkqtplotter_simpletest_datastore_regression_small.png
|
||||
<tr><td> \image html datastore_regression_small.png
|
||||
<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
|
||||
<tr><td> \image html jkqtplotter_simpletest_datastore_groupedstat_small.png
|
||||
<tr><td> \image html datastore_groupedstat_small.png
|
||||
<td> \subpage JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat
|
||||
<td> Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>grouped statistics<br>error indicators from data<br>boxplots
|
||||
<tr><td> \image html jkqtplotter_simpletest_datastore_statistics_2d_small.png
|
||||
<tr><td> \image html datastore_statistics_2d_small.png
|
||||
<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)
|
||||
</table>
|
||||
|
@ -260,13 +260,13 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<td>\image html beeswarmplot_small.png
|
||||
<td> JKQTPSingleColumnSymbolsGraph
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_symbols_and_styles_small.png
|
||||
<td>\image html symbols_and_styles_small.png
|
||||
<td> JKQTPXYLineGraph, JKQTPXYLineErrorGraph
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_paramscatterplot_small.png
|
||||
<td>\image html paramscatterplot_small.png
|
||||
<td> JKQTPXYParametrizedScatterGraph, JKQTPXYParametrizedErrorScatterGraph
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_stepplots_small.png
|
||||
<td>\image html stepplots_small.png
|
||||
<td> JKQTPSpecialLineHorizontalGraph, JKQTPSpecialLineVerticalGraph
|
||||
</table>
|
||||
|
||||
@ -281,10 +281,10 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<td>\image html beeswarmplot_small.png
|
||||
<td> JKQTPSingleColumnSymbolsGraph
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_symbols_and_styles_small.png
|
||||
<td>\image html symbols_and_styles_small.png
|
||||
<td> JKQTPXYLineGraph, JKQTPXYLineErrorGraph
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_stepplots_small.png
|
||||
<td>\image html stepplots_small.png
|
||||
<td> JKQTPSpecialLineHorizontalGraph, JKQTPSpecialLineVerticalGraph
|
||||
</table>
|
||||
|
||||
@ -297,7 +297,7 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_paramscatterplot_small.png
|
||||
<td>\image html paramscatterplot_small.png
|
||||
<td> JKQTPXYParametrizedScatterGraph, JKQTPXYParametrizedErrorScatterGraph
|
||||
</table>
|
||||
|
||||
@ -309,7 +309,7 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_filledgraphs_small.png
|
||||
<td>\image html filledgraphs_small.png
|
||||
<td> JKQTPFilledCurveXGraph, JKQTPFilledCurveYGraph
|
||||
<tr>
|
||||
<td>\image html plot_filledcurvexerrorplots_small.png
|
||||
@ -327,7 +327,7 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_functionplot_small.png
|
||||
<td>\image html functionplot_small.png
|
||||
<td> JKQTPXParsedFunctionLineGraph, JKQTPYParsedFunctionLineGraph
|
||||
</table>
|
||||
|
||||
@ -339,7 +339,7 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_functionplot_small.png
|
||||
<td>\image html functionplot_small.png
|
||||
<td> JKQTPXFunctionLineGraph, JKQTPYFunctionLineGraph
|
||||
</table>
|
||||
|
||||
@ -351,7 +351,7 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_barchart_small.png
|
||||
<td>\image html barchart_small.png
|
||||
<td> JKQTPBarVerticalGraph, JKQTPBarHorizontalGraph
|
||||
<tr>
|
||||
<td>\image html barchart_error_small.png
|
||||
@ -360,7 +360,7 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<td>\image html JKQTPbarVerticalGraphStacked_small.png
|
||||
<td> JKQTPBarVerticalStackableGraph, JKQTPBarHorizontalStackableGraph
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_impulsesplot_small.png
|
||||
<td>\image html impulsesplot_small.png
|
||||
<td> JKQTPImpulsesHorizontalGraph, JKQTPImpulsesVerticalGraph
|
||||
<tr>
|
||||
<td>\image html impulses_errors_small.png
|
||||
@ -375,7 +375,7 @@ This group assembles graphs that show their data with symbols and optionally wit
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_boxplot_small.png
|
||||
<td>\image html boxplot_small.png
|
||||
<td> JKQTPBoxplotVerticalGraph, JKQTPBoxplotHorizontalGraph
|
||||
<tr>
|
||||
<td>\image html JKQTPViolinplotVerticalElement_small.png
|
||||
@ -453,7 +453,7 @@ Examples:
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_rgbimageplot_qt_small.png
|
||||
<td>\image html rgbimageplot_qt_small.png
|
||||
<td> JKQTPImage
|
||||
<tr>
|
||||
<td>\image html JKQTPMathImageBaseModifyNone_small.png
|
||||
@ -481,13 +481,13 @@ Examples:
|
||||
<th> Screenshot
|
||||
<th> Classes
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_rgbimageplot_qt_small.png
|
||||
<td>\image html rgbimageplot_qt_small.png
|
||||
<td> JKQTPImage
|
||||
<tr>
|
||||
<td>\image html JKQTPMathImageBaseModifyNone_small.png
|
||||
<td> JKQTPMathImage, JKQTPColumnMathImage
|
||||
<tr>
|
||||
<td>\image html jkqtplotter_simpletest_rgbimageplot_opencv_small.png
|
||||
<td>\image html rgbimageplot_opencv_small.png
|
||||
<td> JKQTPRGBMathImage, JKQTPColumnRGBMathImage
|
||||
</table>
|
||||
|
||||
|
56
examples/CMakeLists.txt
Normal file
56
examples/CMakeLists.txt
Normal file
@ -0,0 +1,56 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
message( STATUS )
|
||||
message( STATUS "............................................................................." )
|
||||
message( STATUS ".. BUILDING EXAMPLES" )
|
||||
message( STATUS "............................................................................." )
|
||||
|
||||
add_subdirectory(jkqtfastplotter_test)
|
||||
|
||||
add_subdirectory(jkqtmathtext_simpletest)
|
||||
add_subdirectory(jkqtmathtext_test)
|
||||
|
||||
|
||||
add_subdirectory(advancedlineandfillstyling)
|
||||
add_subdirectory(barchart)
|
||||
add_subdirectory(boxplot)
|
||||
add_subdirectory(contourplot)
|
||||
add_subdirectory(datastore)
|
||||
add_subdirectory(datastore_groupedstat)
|
||||
add_subdirectory(datastore_iterators)
|
||||
add_subdirectory(datastore_regression)
|
||||
add_subdirectory(datastore_statistics)
|
||||
add_subdirectory(datastore_statistics_2d)
|
||||
add_subdirectory(dateaxes)
|
||||
add_subdirectory(distributionplot)
|
||||
add_subdirectory(errorbarstyles)
|
||||
add_subdirectory(filledgraphs)
|
||||
add_subdirectory(functionplot)
|
||||
add_subdirectory(geometric)
|
||||
add_subdirectory(imageplot)
|
||||
add_subdirectory(imageplot_modifier)
|
||||
add_subdirectory(imageplot_nodatastore)
|
||||
add_subdirectory(imageplot_opencv)
|
||||
add_subdirectory(impulsesplot)
|
||||
add_subdirectory(logaxes)
|
||||
add_subdirectory(multiplot)
|
||||
add_subdirectory(parametriccurve)
|
||||
add_subdirectory(paramscatterplot)
|
||||
add_subdirectory(paramscatterplot_image)
|
||||
add_subdirectory(parsedfunctionplot)
|
||||
add_subdirectory(rgbimageplot)
|
||||
add_subdirectory(rgbimageplot_opencv)
|
||||
add_subdirectory(rgbimageplot_qt)
|
||||
add_subdirectory(simpletest)
|
||||
add_subdirectory(speed)
|
||||
add_subdirectory(stackedbars)
|
||||
add_subdirectory(stepplots)
|
||||
add_subdirectory(styledboxplot)
|
||||
add_subdirectory(styling)
|
||||
add_subdirectory(symbols_and_errors)
|
||||
add_subdirectory(symbols_and_styles)
|
||||
add_subdirectory(ui)
|
||||
add_subdirectory(user_interaction)
|
||||
add_subdirectory(violinplot)
|
||||
|
||||
|
@ -8,31 +8,31 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
| Screenshot | Description | Notes |
|
||||
|:-------------:| ------------- | ------------- |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest1_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest/README.md) | [Very Basic Example (Line Graph)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest/README.md) | `JKQTPXYLineGraph` <br> C++-style QVector arrays of data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_speed_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_speed) | [Line Graph with Live Data / Speed Test](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_speed) | `JKQTPXYLineGraph` <br> external `std::array<double,N>` data, not owned by datastore <br> live-data, measure plotting speed <br> tipps to increas plotting speed |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_symbols_and_styles_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_styles) | [Line Graph with Different Symbols and Line Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_styles) | `JKQTPXYLineGraph` <br> C++ vector of data <br> setting line styles and symbol styles <br> automatic graph coloring |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_stepplots_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_stepplots) | [Special Step Line Plots in Different Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_stepplots) | `JKQTPSpecialLineHorizontalGraph` <br> C++ vector of data <br> different step modes, filled and line-only |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_symbols_and_errors_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_errors) | [Simple Line/Symbol Graph With Errorbars](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_errors) | `JKQTPXYLineErrorGraph` <br> C-style arrays of data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_errorbarstyles) | [Different Types of Error Indicators](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_errorbarstyles) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_barchart_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_barchart) | [Simple Bar Charts](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_barchart) | `JKQTPBarVerticalGraph` <br> C-style arrays of data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/JKQTPbarHorizontalGraphStacked_small.png) <br> ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/JKQTPbarVerticalGraphStacked_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_stackedbars) | [Stacked Bar Charts](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_stackedbars) | `JKQTPBarVerticalStackableGraph`, `JKQTPBarHorizontalStackableGraph` <br> C++-style vectors of data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_filledgraphs_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_filledgraphs) | [Filled Curve Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_filledgraphs) | `JKQTPBarVerticalGraph` <br> setting/altering data in `JKQTPDatstore` directly <br> transparent plots <br> calculating histograms |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_impulsesplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_impulsesplot) | [Impulse Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_impulsesplot) | `JKQTPImpulsesVerticalGraph` and `JKQTPImpulsesHorizontalGraph` <br> C++-style QVector as plot data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_paramscatterplot) | [Scatter Graph with Parametrized Symbols/Colors](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_paramscatterplot) | `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> modify scatter/points/line-graph properties by data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_image_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_paramscatterplot_image) | [Draw an Artistic Image with a Parametrized Scatter Graph](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_paramscatterplot_image) | `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> rectangular arrangement of scatters <br> generative computer graphics |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parametriccurve_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parametriccurve) | [Plotting Parametric Curves](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parametriccurve) | `JKQTPXYLineGraph` and `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> parametric curve plotting |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_functionplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_functionplot) | [Plotting Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_functionplot) | `JKQTPXFunctionLineGraph` <br> diretly plotting C/C++-functions |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parsedfunctionplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parsedfunctionplot) | [Plotting Parsed Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parsedfunctionplot) | `JKQTPXParsedFunctionLineGraph` <br> plotting functions with the internal math equation parser/evaluator |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_geometric_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_geometric) | [Plotting Geometric Objects](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_geometric) | |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_boxplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_boxplot) | [Plotting Box Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_boxplot) | `JKQTPBoxplotVerticalGraph`, `JKQTPBoxplotHorizontalGraph` |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_violinplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_violinplot) | [Plotting Violin Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_violinplot) | `JKQTPViolinplotVerticalElement`, `JKQTPViolinplotHorizontalElement` |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/speed_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/speed) | [Line Graph with Live Data / Speed Test](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/speed) | `JKQTPXYLineGraph` <br> external `std::array<double,N>` data, not owned by datastore <br> live-data, measure plotting speed <br> tipps to increas plotting speed |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/symbols_and_styles_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/symbols_and_styles) | [Line Graph with Different Symbols and Line Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/symbols_and_styles) | `JKQTPXYLineGraph` <br> C++ vector of data <br> setting line styles and symbol styles <br> automatic graph coloring |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/stepplots_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/stepplots) | [Special Step Line Plots in Different Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/stepplots) | `JKQTPSpecialLineHorizontalGraph` <br> C++ vector of data <br> different step modes, filled and line-only |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/symbols_and_errors_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/symbols_and_errors) | [Simple Line/Symbol Graph With Errorbars](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/symbols_and_errors) | `JKQTPXYLineErrorGraph` <br> C-style arrays of data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/errorbarstyles_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/errorbarstyles) | [Different Types of Error Indicators](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/errorbarstyles) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/barchart_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/barchart) | [Simple Bar Charts](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/barchart) | `JKQTPBarVerticalGraph` <br> C-style arrays of data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/JKQTPbarHorizontalGraphStacked_small.png) <br> ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/JKQTPbarVerticalGraphStacked_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/stackedbars) | [Stacked Bar Charts](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/stackedbars) | `JKQTPBarVerticalStackableGraph`, `JKQTPBarHorizontalStackableGraph` <br> C++-style vectors of data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/filledgraphs_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/filledgraphs) | [Filled Curve Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/filledgraphs) | `JKQTPBarVerticalGraph` <br> setting/altering data in `JKQTPDatstore` directly <br> transparent plots <br> calculating histograms |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/impulsesplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/impulsesplot) | [Impulse Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/impulsesplot) | `JKQTPImpulsesVerticalGraph` and `JKQTPImpulsesHorizontalGraph` <br> C++-style QVector as plot data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/paramscatterplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/paramscatterplot) | [Scatter Graph with Parametrized Symbols/Colors](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/paramscatterplot) | `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> modify scatter/points/line-graph properties by data |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/paramscatterplot_image_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/paramscatterplot_image) | [Draw an Artistic Image with a Parametrized Scatter Graph](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/paramscatterplot_image) | `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> rectangular arrangement of scatters <br> generative computer graphics |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/parametriccurve_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/parametriccurve) | [Plotting Parametric Curves](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/parametriccurve) | `JKQTPXYLineGraph` and `JKQTPXYParametrizedScatterGraph` <br> C++-style QVector as plot data <br> parametric curve plotting |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/functionplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/functionplot) | [Plotting Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/functionplot) | `JKQTPXFunctionLineGraph` <br> diretly plotting C/C++-functions |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/parsedfunctionplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/parsedfunctionplot) | [Plotting Parsed Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/parsedfunctionplot) | `JKQTPXParsedFunctionLineGraph` <br> plotting functions with the internal math equation parser/evaluator |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/geometric_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/geometric) | [Plotting Geometric Objects](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/geometric) | |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/boxplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/boxplot) | [Plotting Box Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/boxplot) | `JKQTPBoxplotVerticalGraph`, `JKQTPBoxplotHorizontalGraph` |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/violinplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/violinplot) | [Plotting Violin Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/violinplot) | `JKQTPViolinplotVerticalElement`, `JKQTPViolinplotHorizontalElement` |
|
||||
|
||||
## Styling the Plot, Keys, Axes, ...
|
||||
|
||||
| Screenshot | Description | Notes |
|
||||
|:-------------:| ------------- | ------------- |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_logaxes_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_logaxes) | [logarithmic axes](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_logaxes) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_small.png) <br> ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_dates_small.png) <br> ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_timeaxis_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_dateaxes) | [date/time axes](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_dateaxes) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_advancedlineandfillstyling_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_advancedlineandfillstyling) | [advanced line and fill styling](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_advancedlineandfillstyling) | `JKQTPXYLineGraph`, `JKQTPSpecialLineHorizontalGraph` and `JKQTPBarVerticalGraph` <br> C++ vector of data <br> advanced line styling and filling |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/logaxes_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/logaxes) | [logarithmic axes](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/logaxes) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/dateaxes_small.png) <br> ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/dateaxes_dates_small.png) <br> ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/dateaxes_timeaxis_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/dateaxes) | [date/time axes](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/dateaxes) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/advancedlineandfillstyling_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/advancedlineandfillstyling) | [advanced line and fill styling](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/advancedlineandfillstyling) | `JKQTPXYLineGraph`, `JKQTPSpecialLineHorizontalGraph` and `JKQTPBarVerticalGraph` <br> C++ vector of data <br> advanced line styling and filling |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_styledboxplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_styledboxplot) | [Styling of Boxplots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_styledboxplot) | Modifying different Aspects of the Styling of boxplots |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_styling_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_styling) | [Styling of JKQTPlotter](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_styling) | Modifying different Aspects of the Styling of JKQTPlotter |
|
||||
|
||||
@ -40,14 +40,14 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
|
||||
| Screenshot | Description | Notes |
|
||||
|:-------------:| ------------- | ------------- |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_rgbimageplot_qt_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_rgbimageplot_qt) | [`QImage` as a Graph](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_rgbimageplot_qt) | `JKQTPImage` <br> `QImage` drawn onto a plot with arbitrary scaling <br> inverted coordinate axes |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot) | [Basic 1-channel Raw C Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot) | `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.) |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_modifier_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_modifier) | [Modifier-Feature of Image Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_modifier) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_nodatastore_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_nodatastore) | [Basic 1-channel Raw C Image Plot <br> without the internal datastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_nodatastore) | `JKQTPMathImage` <br> image data in a C-style row-major array, not using internal datastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_rgbimageplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtplotter_simpletest_rgbimageplot) | [Simple 3-channel Math RGB/CMY Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtplotter_simpletest_rgbimageplot) | `JKQTPColumnRGBMathImage` <br> image data in a C-style row-major array, not using internal datastore <br> RGB/CMY color compositing |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_opencv_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_opencv) | [1-channel OpenCV cv::Mat Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_opencv) | `JKQTPColumnMathImage` <br> 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/examples/simpletest_rgbimageplot_opencv) | [RGB OpenCV cv::Mat Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_rgbimageplot_opencv) | `JKQTPColumnRGBMathImage` <br> image data copied from OpenCV cv::Mat-structure into three columns <br> inverted coordinate axesof the internal datastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_contourplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_contourplot) | [Contour Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_contourplot) | `JKQTPColumnContourPlot` <br> image data edited inside JKQTPDatastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/rgbimageplot_qt_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/rgbimageplot_qt) | [`QImage` as a Graph](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/rgbimageplot_qt) | `JKQTPImage` <br> `QImage` drawn onto a plot with arbitrary scaling <br> inverted coordinate axes |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot) | [Basic 1-channel Raw C Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot) | `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.) |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot_modifier_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot_modifier) | [Modifier-Feature of Image Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot_modifier) | `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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot_nodatastore_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot_nodatastore) | [Basic 1-channel Raw C Image Plot <br> without the internal datastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot_nodatastore) | `JKQTPMathImage` <br> image data in a C-style row-major array, not using internal datastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/rgbimageplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/rgbimageplot) | [Simple 3-channel Math RGB/CMY Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/rgbimageplot) | `JKQTPColumnRGBMathImage` <br> image data in a C-style row-major array, not using internal datastore <br> RGB/CMY color compositing |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot_opencv_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot_opencv) | [1-channel OpenCV cv::Mat Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot_opencv) | `JKQTPColumnMathImage` <br> image data copied from OpenCV cv::Mat-structure into a single column of the internal datastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/rgbimageplot_opencv_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/rgbimageplot_opencv) | [RGB OpenCV cv::Mat Image Plot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/rgbimageplot_opencv) | `JKQTPColumnRGBMathImage` <br> image data copied from OpenCV cv::Mat-structure into three columns <br> inverted coordinate axesof the internal datastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contourplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/contourplot) | [Contour Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/contourplot) | `JKQTPColumnContourPlot` <br> image data edited inside JKQTPDatastore |
|
||||
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
|
||||
| Screenshot | Description | Notes |
|
||||
|:-------------:| ------------- | ------------- |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_ui_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_ui) | [Placing JKQTPlotter into a Qt User-Interface-XML-file (`*.ui`)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_ui) | using Qt Form Designer <br> parsed function plots (`JKQTPXParsedFunctionLineGraph`) |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/ui_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/ui) | [Placing JKQTPlotter into a Qt User-Interface-XML-file (`*.ui`)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/ui) | using Qt Form Designer <br> parsed function plots (`JKQTPXParsedFunctionLineGraph`) |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_test_user_interaction_small.gif)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction) | [User Interaction](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction) | different possibilities of user-interaction in JKQtPlotter |
|
||||
|
||||
|
||||
@ -63,12 +63,12 @@ All test-projects are Qt-projects that use qmake to build. You can load them int
|
||||
|
||||
| Screenshot | Description | Notes |
|
||||
|:-------------:| ------------- | ------------- |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore) | [Tutorial: Basic Usage of JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore) | Basic Data Management with JKQTPDatastore <br/> Copying data into a JKQTPDatastore <br/> Editing data inside a JKQTPDatastore <br/> Editing Image Data in a JKQTPDatastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_iterators_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_iterators) | [Tutorial: Iterator-based access to JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_iterators) | Iterator-based Data Management with JKQTPDatastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics) | [Tutorial: Advanced 1-Dimensional Statistics with JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics) | Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>using the internal statistics library<br>basic statistics (mean, standard deviation, ...)<br>boxplots<br>histograms<br>kernel density estimates (KDE) |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_regression) | [Tutorial: Regression Analysis (with the Statistics Library)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_regression) | 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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_groupedstat_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_groupedstat) | [Tutorial: 1-Dimensional Group Statistics (with the Statistics Library)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_groupedstat) | Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>grouped statistics<br>error indicators from data<br>boxplots |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics_2d) | [Tutorial: Advanced 2-Dimensional Statistics with JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics_2d) | Advanced 2-Dimensional Statistical Computation with JKQTPDatastore<br>using the internal statistics library<br>histograms<br>kernel density estimates (KDE) |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore) | [Tutorial: Basic Usage of JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore) | Basic Data Management with JKQTPDatastore <br/> Copying data into a JKQTPDatastore <br/> Editing data inside a JKQTPDatastore <br/> Editing Image Data in a JKQTPDatastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_iterators_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_iterators) | [Tutorial: Iterator-based access to JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_iterators) | Iterator-based Data Management with JKQTPDatastore |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics) | [Tutorial: Advanced 1-Dimensional Statistics with JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics) | Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>using the internal statistics library<br>basic statistics (mean, standard deviation, ...)<br>boxplots<br>histograms<br>kernel density estimates (KDE) |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_regression) | [Tutorial: Regression Analysis (with the Statistics Library)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_regression) | 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 |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_groupedstat_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_groupedstat) | [Tutorial: 1-Dimensional Group Statistics (with the Statistics Library)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_groupedstat) | Advanced 1-Dimensional Statistical Computation with JKQTPDatastore<br>grouped statistics<br>error indicators from data<br>boxplots |
|
||||
| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics_2d) | [Tutorial: Advanced 2-Dimensional Statistics with JKQTPDatastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics_2d) | Advanced 2-Dimensional Statistical Computation with JKQTPDatastore<br>using the internal statistics library<br>histograms<br>kernel density estimates (KDE) |
|
||||
|
||||
|
||||
## More Complex Examples
|
||||
|
26
examples/advancedlineandfillstyling/CMakeLists.txt
Normal file
26
examples/advancedlineandfillstyling/CMakeLists.txt
Normal file
@ -0,0 +1,26 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME advancedlineandfillstyling)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES advancedlineandfillstyling.cpp )
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS advancedlineandfillstyling.qrc )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,7 +1,7 @@
|
||||
# Example (JKQTPlotter): Advanced Line and Fill Styling {#JKQTPlotterAdvancedLineAndFillStyling}
|
||||
This project (see `./examples/simpletest_advancedlineandfillstyling/`) demonstrates how to use advanced line styling and filling options (e.g. custom dash-styles, gradient, image fills, transparencies, ...) with JKQtPlotter.
|
||||
This project (see `./examples/advancedlineandfillstyling/`) demonstrates how to use advanced line styling and filling options (e.g. custom dash-styles, gradient, image fills, transparencies, ...) with JKQtPlotter.
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_advancedlineandfillstyling.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_advancedlineandfillstyling/jkqtplotter_simpletest_advancedlineandfillstyling.cpp).
|
||||
The source code of the main application can be found in [`advancedlineandfillstyling.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/advancedlineandfillstyling/advancedlineandfillstyling.cpp).
|
||||
|
||||
Initially several data columns are generated and added to the internal datastore. Then several line graphs are added that all use different custom dashes. In addition the third line does not use a single color, but a gradient for coloring:
|
||||
```.cpp
|
||||
@ -104,7 +104,7 @@ In addition to the graph background properties, also the plot/widget/key backgro
|
||||
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_advancedlineandfillstyling](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_advancedlineandfillstyling.png)
|
||||
![advancedlineandfillstyling](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/advancedlineandfillstyling.png)
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_advancedlineandfillstyling.cpp
|
||||
/** \example advancedlineandfillstyling.cpp
|
||||
* Shows how to use advanced line styling and filling options with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterAdvancedLineAndFillStyling, JKQTPXYLineGraph, JKQTPSpecialLineHorizontalGraph, JKQTPBarVerticalGraph
|
@ -1,7 +1,7 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_advancedlineandfillstyling.cpp
|
||||
SOURCES = advancedlineandfillstyling.cpp
|
||||
|
||||
RESOURCES += jkqtplotter_simpletest_advancedlineandfillstyling.qrc
|
||||
RESOURCES += advancedlineandfillstyling.qrc
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -9,16 +9,16 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_advancedlineandfillstyling
|
||||
TARGET = advancedlineandfillstyling
|
||||
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib advancedlineandfillstyling
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
advancedlineandfillstyling.file=$$PWD/advancedlineandfillstyling.pro
|
||||
advancedlineandfillstyling.depends = jkqtplotterlib
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
28
examples/barchart/CMakeLists.txt
Normal file
28
examples/barchart/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME barchart)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES barchart.cpp )
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,7 +1,7 @@
|
||||
# Example (JKQTPlotter): Simple barchart {#JKQTPlotterBarcharts}
|
||||
This project (see [`simpletest_barchart`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_barchart) simply creates a JKQTPlotter widget (as a new window) and adds several barcharts. They are ordered in groups.
|
||||
This project (see [`barchart`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/barchart) simply creates a JKQTPlotter widget (as a new window) and adds several barcharts. They are ordered in groups.
|
||||
|
||||
The source code of the main application is (see [`jkqtplotter_simpletest_barchart.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_barchart/jkqtplotter_simpletest_barchart.cpp):
|
||||
The source code of the main application is (see [`barchart.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/barchart/barchart.cpp):
|
||||
```.cpp
|
||||
#include <QApplication>
|
||||
#include "jkqtplotter/jkqtplotter.h"
|
||||
@ -91,6 +91,6 @@ int main(int argc, char* argv[])
|
||||
```
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_barchart](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_barchart.png)
|
||||
![barchart](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/barchart.png)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_barchart.cpp
|
||||
/** \example barchart.cpp
|
||||
* Shows how to draw Barcharts with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterBarcharts
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_boxplot.cpp
|
||||
SOURCES = barchart.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,21 +7,21 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_boxplot
|
||||
TARGET = barchart
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
||||
|
||||
|
||||
win32-msvc*: DEFINES += _USE_MATH_DEFINES
|
||||
win32-msvc*: DEFINES += NOMINMAX
|
||||
|
||||
|
||||
|
8
examples/barchart/barchart_and_lib.pro
Normal file
8
examples/barchart/barchart_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib barchart
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
barchart.file=$$PWD/barchart.pro
|
||||
barchart.depends = jkqtplotterlib
|
28
examples/boxplot/CMakeLists.txt
Normal file
28
examples/boxplot/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME boxplot)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES boxplot.cpp )
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,6 +1,6 @@
|
||||
# Example (JKQTPlotter): Boxplots {#JKQTPlotterBoxplotsGraphs}
|
||||
|
||||
This project (see [`simpletest_boxplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_boxplot) demonstrates how to use JKQTPlotter to draw <a href="https://en.wikipedia.org/wiki/Box_plot">box plots</a> using the classes `JKQTPBoxplotVerticalGraph` and `JKQTPBoxplotHorizontalGraph`.
|
||||
This project (see [`boxplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/boxplot) demonstrates how to use JKQTPlotter to draw <a href="https://en.wikipedia.org/wiki/Box_plot">box plots</a> using the classes `JKQTPBoxplotVerticalGraph` and `JKQTPBoxplotHorizontalGraph`.
|
||||
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatistics]: @ref JKQTPlotterBasicJKQTPDatastoreStatistics "Advanced 1-Dimensional Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
@ -8,7 +8,7 @@ This project (see [`simpletest_boxplot`](https://github.com/jkriege2/JKQtPlotter
|
||||
|
||||
***Note*** that this example explains how to add boxplots to a graph by hand, i.e. by calculating all the statistical properties for the boxplots by hand. The internal [statisticslibrary] offers methods to perform these calculations, which are explained in the tutorial [JKQTPlotterBasicJKQTPDatastoreStatistics] in detail. Additional advanced styling of boxplots is covered by the example [JKQTPlotterBoxplotStyling].
|
||||
|
||||
The source code of the main application is (see [`jkqtplotter_simpletest_boxplot.cpp`](jkqtplotter_simpletest_boxplot.cpp).
|
||||
The source code of the main application is (see [`boxplot.cpp`](boxplot.cpp).
|
||||
|
||||
After adding all necessary data to the JKQTDatastore:
|
||||
```.cpp
|
||||
@ -72,7 +72,7 @@ You can further style the plot by e.g. setting:
|
||||
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_boxplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_boxplot.png)
|
||||
![boxplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/boxplot.png)
|
||||
|
||||
In addition to the simple box plots, the image above also shows outliers as small circles. these need to be drawn with a separate `JKQTPXYLineGraph`:
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_boxplot.cpp
|
||||
/** \example boxplot.cpp
|
||||
* Shows how to draw Boxplots with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterBoxplotsGraphs
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_barchart.cpp
|
||||
SOURCES = boxplot.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,21 +7,21 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_barchart
|
||||
TARGET = boxplot
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
||||
|
||||
|
||||
win32-msvc*: DEFINES += _USE_MATH_DEFINES
|
||||
win32-msvc*: DEFINES += NOMINMAX
|
||||
|
||||
|
||||
|
8
examples/boxplot/boxplot_and_lib.pro
Normal file
8
examples/boxplot/boxplot_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib boxplot
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
boxplot.file=$$PWD/boxplot.pro
|
||||
boxplot.depends = jkqtplotterlib
|
28
examples/contourplot/CMakeLists.txt
Normal file
28
examples/contourplot/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME contourplot)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES contourplot.cpp contourplotanimator.cpp )
|
||||
set(HEADERS contourplotanimator.h )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,11 +1,11 @@
|
||||
# Example (JKQTPlotter): Contour Plots {#JKQTPlotterContourPlot}
|
||||
This project (see `./examples/simpletest_contourplot/`) shows how to draw contour plots with JKQTPlotter.
|
||||
This project (see `./examples/contourplot/`) shows how to draw contour plots with JKQTPlotter.
|
||||
|
||||
[TOC]
|
||||
|
||||
# Drawing a Contour Plot
|
||||
|
||||
The source code of the main application is (see [`jkqtplotter_simpletest_contourplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_contourplot/jkqtplotter_simpletest_contourplot.cpp) ).
|
||||
The source code of the main application is (see [`contourplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/contourplot/contourplot.cpp) ).
|
||||
|
||||
First the electric potential from a quadrupole is calculated and stored in an image column inside the JKQTPDatastore:
|
||||
```.cpp
|
||||
@ -86,18 +86,18 @@ Note that we created the list of contour levels to draw explicitly here using `J
|
||||
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_contourplot.png)
|
||||
![contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contourplot.png)
|
||||
|
||||
# Styling a Contour Plot
|
||||
|
||||
|
||||
You can change the way that the colors for the contours are chosen by calling `JKQTPColumnContourPlot::setContourColoringMode()` with another mode:
|
||||
- `JKQTPColumnContourPlot::SingleColorContours` uses the same color (set by `JKQTPColumnContourPlot::setLineColor()`) for all contours.<br>
|
||||
![jkqtplotter_simpletest_contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_contourplot_SingleColorContours.png)
|
||||
![contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contourplot_SingleColorContours.png)
|
||||
- `JKQTPColumnContourPlot::ColorContoursFromPaletteByValue` is the mode used for the example above, which chooses the color from the current color-palette based on the current image data range and the actual level of the contour line. <br>
|
||||
![jkqtplotter_simpletest_contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_contourplot_ColorContoursFromPaletteByValue.png)
|
||||
![contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contourplot_ColorContoursFromPaletteByValue.png)
|
||||
- `JKQTPColumnContourPlot::ColorContoursFromPalette` chooses the color by evenly spacing the contour lines over the full color palette. the line-color will then have no connection to the actual value of the level.<br>
|
||||
![jkqtplotter_simpletest_contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_contourplot_ColorContoursFromPalette.png)
|
||||
![contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contourplot_ColorContoursFromPalette.png)
|
||||
|
||||
In all modes you can override the coloring of single levels by calling `JKQTPColumnContourPlot::setOverrideColor(level, color)`. In the example above this looks like this:
|
||||
|
||||
@ -117,15 +117,15 @@ In all modes you can override the coloring of single levels by calling `JKQTPCol
|
||||
|
||||
This code results (in the default coloring mode `JKQTPColumnContourPlot::ColorContoursFromPaletteByValue`) in:
|
||||
|
||||
![jkqtplotter_simpletest_contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_contourplot_overridecolors.png)
|
||||
![contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contourplot_overridecolors.png)
|
||||
|
||||
# Gimmick: Animating a Contour Plot
|
||||
|
||||
In order to demonstrate the caching implemented in the contour plot, there is optional animation code inside this example, in the form of the class `ContourPlotAnimator` (see (see [`ContourPlotAnimator.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_contourplot/ContourPlotAnimator.cpp) ).
|
||||
In order to demonstrate the caching implemented in the contour plot, there is optional animation code inside this example, in the form of the class `ContourPlotAnimator` (see (see [`ContourPlotAnimator.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/contourplot/ContourPlotAnimator.cpp) ).
|
||||
|
||||
The code therein results in an animation like this:
|
||||
|
||||
![jkqtplotter_simpletest_contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_contourplot_animated.gif)
|
||||
![contourplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contourplot_animated.gif)
|
||||
|
||||
Note that zooming can still be perfomred without the need to recalculate the contour lines.
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_contourplot.cpp
|
||||
/** \example contourplot.cpp
|
||||
* Shows how to plot a contour plot with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterContourPlot
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_contourplot.cpp \
|
||||
SOURCES = contourplot.cpp \
|
||||
contourplotanimator.cpp
|
||||
|
||||
# configure Qt
|
||||
@ -8,15 +8,15 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_contourplot
|
||||
TARGET = contourplot
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
8
examples/contourplot/contourplot_and_lib.pro
Normal file
8
examples/contourplot/contourplot_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib contourplot
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
contourplot.file=$$PWD/contourplot.pro
|
||||
contourplot.depends = jkqtplotterlib
|
28
examples/datastore/CMakeLists.txt
Normal file
28
examples/datastore/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME datastore)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES datastore.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -8,7 +8,7 @@
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatistics2D]: @ref JKQTPlotterBasicJKQTPDatastoreStatistics2D "Advanced 2-Dimensional Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
|
||||
This tutorial project (see `./examples/simpletest_datastore/`) explains several options of JKQTPDatastore, which is the class used to centrally store the data for (most) graphs on a JKQTPlotter widget.
|
||||
This tutorial project (see `./examples/datastore/`) explains several options of JKQTPDatastore, which is the class used to centrally store the data for (most) graphs on a JKQTPlotter widget.
|
||||
|
||||
***Note*** that there are additional tutorial explaining other aspects of data mangement in JKQTPDatastore:
|
||||
- [JKQTPlotterBasicJKQTPDatastore]
|
||||
@ -22,7 +22,7 @@ This tutorial project (see `./examples/simpletest_datastore/`) explains several
|
||||
|
||||
[TOC]
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_datastore.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore/jkqtplotter_simpletest_datastore.cpp).
|
||||
The source code of the main application can be found in [`datastore.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore/datastore.cpp).
|
||||
This tutorial cites parts of this code to demonstrate different ways of working with data for the graphs.
|
||||
|
||||
In every code-segment below, we will use these two declarations from the code to access the internal datastore of the JKQTPlotter instance:
|
||||
@ -57,7 +57,7 @@ Note that you could also use a `std::vector` instead, as `JKQTPDatastore::addCop
|
||||
|
||||
The plot from the code above looks like this:
|
||||
|
||||
![simpletest_datastore_sine](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_sine.png)
|
||||
![datastore_sine](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_sine.png)
|
||||
|
||||
|
||||
## Copy Data from a C-array into a Column of the JKQTPDatastore
|
||||
@ -74,7 +74,7 @@ Of course if you have your data in a C-array, you can use the same syntax:
|
||||
|
||||
The plot from the code above looks like this:
|
||||
|
||||
![simpletest_datastore_linkedcarray](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_linkedcarray.png)
|
||||
![datastore_linkedcarray](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_linkedcarray.png)
|
||||
|
||||
|
||||
## Copy Data from a Map into a JKQTPDatastore
|
||||
@ -93,7 +93,7 @@ Since graphs often display (x,y)-pairs, it may make sense to store them in a map
|
||||
```
|
||||
This code results in a graph like this:
|
||||
|
||||
![simpletest_datastore_map](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_map.png)
|
||||
![datastore_map](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_map.png)
|
||||
|
||||
|
||||
# Reference External Data in a column of the JKQTPDatastore
|
||||
@ -119,7 +119,7 @@ Note however that the ownership of the data is not transfered to the JKQTPDatast
|
||||
|
||||
The plot from the code above looks like this:
|
||||
|
||||
![simpletest_datastore_linkedcarray](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_linkedcarray.png)
|
||||
![datastore_linkedcarray](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_linkedcarray.png)
|
||||
|
||||
## Referencing with Transfer of Ownership
|
||||
|
||||
@ -156,7 +156,7 @@ Then use JKQTPDatastore::set() to fill them with data:
|
||||
|
||||
Plotting these two columns versus each other results in a simple sine graph:
|
||||
|
||||
![simpletest_datastore_sine](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_sine.png)
|
||||
![datastore_sine](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_sine.png)
|
||||
|
||||
|
||||
|
||||
@ -234,7 +234,7 @@ Plotting these two columns versus each other
|
||||
|
||||
results in:
|
||||
|
||||
![simpletest_datastore_calccolumns](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_calccolumns.png)
|
||||
![datastore_calccolumns](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_calccolumns.png)
|
||||
|
||||
|
||||
## 2D-Datasets and Images
|
||||
@ -294,7 +294,7 @@ In the example above we used the simple JKQTPDatastore::set() store values into
|
||||
```
|
||||
Drawing this column as an image (using JKQTPColumnMathImage) will look like this:
|
||||
|
||||
![simpletest_datastore_sineimg](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_sineimg.png)
|
||||
![datastore_sineimg](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_sineimg.png)
|
||||
|
||||
In these examples, the iteration and calculation is written out with an explicit for-loop. JKQTPDatastore also offers a shortcut function for this that accepts a functor with the calculation only:
|
||||
```.cpp
|
||||
@ -324,7 +324,7 @@ Then you can plot these as a parametrized scatter graph (`JKQTPXYParametrizedSca
|
||||
```
|
||||
The result will look like this (`JKQTPXYParametrizedScatterGraph` on the left and `JKQTPColumnMathImage` on the right):
|
||||
|
||||
![simpletest_datastore_image](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_image.png)
|
||||
![datastore_image](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_image.png)
|
||||
|
||||
|
||||
|
||||
@ -353,13 +353,13 @@ in which an image was calculated pixel-by-pixel with explicit int indices. Alter
|
||||
|
||||
All these code fragments result in the same graphs:
|
||||
|
||||
![simpletest_datastore_image](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_image.png)
|
||||
![datastore_image](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_image.png)
|
||||
|
||||
You can also use this interface to interface with algorithms e.g. from the C++ standard template library. E.g. if you want to sort the data in a column, you can simply call
|
||||
```.cpp
|
||||
std::sort(datastore->begin(colY), datastore->end(colY));
|
||||
```
|
||||
|
||||
![simpletest_datastore_image_sorted](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_image_sorted.png)
|
||||
![datastore_image_sorted](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_image_sorted.png)
|
||||
|
||||
This, together with `JKQTPDatastore::backInserter()` allows to use `JKQTDatastore` together with algorithms from the C++ standard template libarary and other templated algorithms based on the same iterator-based interfaces (e.g. in boost).
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_datastore.cpp
|
||||
/** \example datastore.cpp
|
||||
* Several basic examples of how to add data to and edit data in a JKQTPDatastore.
|
||||
*
|
||||
* \ref JKQTPlottersimpletest_datastore
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest.cpp
|
||||
SOURCES = datastore.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,15 +7,15 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest
|
||||
TARGET = datastore
|
||||
|
||||
# include JKQTPlotter source headers and link against library
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
8
examples/datastore/datastore_and_lib.pro
Normal file
8
examples/datastore/datastore_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib datastore
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
datastore.file=$$PWD/datastore.pro
|
||||
datastore.depends = jkqtplotterlib
|
28
examples/datastore_groupedstat/CMakeLists.txt
Normal file
28
examples/datastore_groupedstat/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME datastore_groupedstat)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -8,7 +8,7 @@
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatistics2D]: @ref JKQTPlotterBasicJKQTPDatastoreStatistics2D "Advanced 2-Dimensional Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
|
||||
This tutorial project (see `./examples/simpletest_datastore_groupedstat/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
This tutorial project (see `./examples/datastore_groupedstat/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
|
||||
***Note*** that there are additional tutorial explaining other aspects of data mangement in JKQTPDatastore:
|
||||
- [JKQTPlotterBasicJKQTPDatastore]
|
||||
@ -20,7 +20,7 @@ This tutorial project (see `./examples/simpletest_datastore_groupedstat/`) expla
|
||||
|
||||
[TOC]
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_datastore_groupedstat.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_groupedstat/jkqtplotter_simpletest_datastore_groupedstat.cpp).
|
||||
The source code of the main application can be found in [`datastore_groupedstat.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_groupedstat/datastore_groupedstat.cpp).
|
||||
This tutorial cites only parts of this code to demonstrate different ways of working with data for the graphs.
|
||||
|
||||
# Barcharts & Boxplots from categorized data
|
||||
@ -63,7 +63,7 @@ This dataset can be visualized with a simple scatter plot:
|
||||
|
||||
The resulting plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_groupedstat_barchartrawdata](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_groupedstat_barchartrawdata.png)
|
||||
![datastore_groupedstat_barchartrawdata](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_groupedstat_barchartrawdata.png)
|
||||
|
||||
## Calculating Grouped Statistics for a Barchart
|
||||
|
||||
@ -98,7 +98,7 @@ Finally the calculated groups are drawn:
|
||||
|
||||
The resulting plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_groupedstat_barchart](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_groupedstat_barchart.png)
|
||||
![datastore_groupedstat_barchart](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_groupedstat_barchart.png)
|
||||
|
||||
In order to safe yo the typing of the code above, shortcuts in the form of adaptors exist:
|
||||
```.cpp
|
||||
@ -146,7 +146,7 @@ The result can be plotted using JKQTPBoxplotVerticalGraph, which receives a colu
|
||||
|
||||
The resulting plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_groupedstat_boxplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_groupedstat_boxplot.png)
|
||||
![datastore_groupedstat_boxplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_groupedstat_boxplot.png)
|
||||
|
||||
In order to safe yo the typing of the code above, shortcuts in the form of adaptors exist:
|
||||
```.cpp
|
||||
@ -192,7 +192,7 @@ This dataset can be visualized:
|
||||
|
||||
The resulting plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_groupedstat_scatterrawdata](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_groupedstat_scatterrawdata.png)
|
||||
![datastore_groupedstat_scatterrawdata](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_groupedstat_scatterrawdata.png)
|
||||
|
||||
## Calculating x- and y-Errors from Categorized Data
|
||||
|
||||
@ -240,7 +240,7 @@ Finally the calculated groups are drawn
|
||||
|
||||
The resulting plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_groupedstat_scatter](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_groupedstat_scatter.png)
|
||||
![datastore_groupedstat_scatter](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_groupedstat_scatter.png)
|
||||
|
||||
|
||||
In order to safe yo the typing of the code above, shortcuts in the form of adaptors exist:
|
||||
@ -258,8 +258,8 @@ Also other flavors exist that generate different graphs (see the JKQTPlotter doc
|
||||
|
||||
# Screenshot of the full Program
|
||||
|
||||
The output of the full test program [`jkqtplotter_simpletest_datastore_groupedstat.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_groupedstat/jkqtplotter_simpletest_datastore_groupedstat.cpp) looks like this:
|
||||
The output of the full test program [`datastore_groupedstat.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_groupedstat/datastore_groupedstat.cpp) looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_groupedstat](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_groupedstat.png)
|
||||
![datastore_groupedstat](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_groupedstat.png)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_datastore_groupedstat.cpp
|
||||
/** \example datastore_groupedstat.cpp
|
||||
* Explains how to use the internal statistics library (see \ref jkqtptools_statistics ) together with JKQTPDatastore to generate grouped statistics (i.e. calculates errorbars or boxplots from groups of datapoints in a x/y-dataset).
|
||||
*
|
||||
* \ref JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_datastore.cpp
|
||||
SOURCES = datastore_groupedstat.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,15 +7,15 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_datastore
|
||||
TARGET = datastore_groupedstat
|
||||
|
||||
# include JKQTPlotter source headers and link against library
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib datastore_groupedstat
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
datastore_groupedstat.file=$$PWD/datastore_groupedstat.pro
|
||||
datastore_groupedstat.depends = jkqtplotterlib
|
28
examples/datastore_iterators/CMakeLists.txt
Normal file
28
examples/datastore_iterators/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME datastore_iterators)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -8,7 +8,7 @@
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatistics2D]: @ref JKQTPlotterBasicJKQTPDatastoreStatistics2D "Advanced 2-Dimensional Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
|
||||
This tutorial project (see `./examples/simpletest_datastore_iterators/`) explains how to use the iterator-based interface to JKQTPDatastore.
|
||||
This tutorial project (see `./examples/datastore_iterators/`) explains how to use the iterator-based interface to JKQTPDatastore.
|
||||
|
||||
***Note*** that there are additional tutorial explaining other aspects of data mangement in JKQTPDatastore:
|
||||
- [JKQTPlotterBasicJKQTPDatastore]
|
||||
@ -23,7 +23,7 @@ This tutorial project (see `./examples/simpletest_datastore_iterators/`) explain
|
||||
|
||||
[TOC]
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_datastore_iterators.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_iterators/jkqtplotter_simpletest_datastore_iterators.cpp).
|
||||
The source code of the main application can be found in [`datastore_iterators.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_iterators/datastore_iterators.cpp).
|
||||
This tutorial cites parts of this code to demonstrate different ways of working with JKQTPDatastore's iterator-interface.
|
||||
|
||||
In every code-segment below, we will use these two declarations from the code to access the internal datastore of the JKQTPlotter instance:
|
||||
@ -48,7 +48,7 @@ In other tutorials we used e.g. `JKQTPDatastore::set()` to set values in data co
|
||||
```
|
||||
Here we added two columns with 50 entries. `XCol` contains linearly spaced values between 0 and 2*pi and `YCol` contains 50 uninitialized values. Then we iterate an index `i` over all these items (`datastore->getRows(XCol)` returns the rows in a column, i.e. 50 in the example above) and used `JKQTPDatastore::set()` to store the calculated values in the two columns. The current x-values is read from `XCol` using `JKQTPDatastore::get()`. The resulting plot looks like this:
|
||||
|
||||
![simpletest_datastore_iterators_cosine](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_iterators_cosine.png)
|
||||
![simpletest_datastore_iterators_cosine](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_iterators_cosine.png)
|
||||
|
||||
The same loop can be written using iterators:
|
||||
```.cpp
|
||||
@ -90,14 +90,14 @@ Of course you can now also interface other algorithms, like e.g. [`std::sort()`]
|
||||
|
||||
With this line of code, the `YCol` is sorted in ascending order and the plot becomes:
|
||||
|
||||
![simpletest_datastore_iterators_cosine_ysorted](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_iterators_cosine_ysorted.png)
|
||||
![simpletest_datastore_iterators_cosine_ysorted](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_iterators_cosine_ysorted.png)
|
||||
|
||||
Another example would be to replace all value `y<-0.5` with the value `1.0` using [`std::replace_if()`](https://de.cppreference.com/w/cpp/algorithm/replace):
|
||||
```.cpp
|
||||
std::replace_if(datastore->begin(YCol), datastore->end(YCol), [](double v) { return v<-0.5; }, 1.0);
|
||||
```
|
||||
|
||||
![simpletest_datastore_iterators_cosine_yreplaced](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/simpletest_datastore_iterators_cosine_yreplaced.png)
|
||||
![simpletest_datastore_iterators_cosine_yreplaced](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_iterators_cosine_yreplaced.png)
|
||||
|
||||
Finally also the [erase-remove idiom](https://en.wikipedia.org/wiki/Erase%E2%80%93remove_idiom) (e.g. known from `std::vector`) is supported:
|
||||
```.cpp
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_datastore_iterators.cpp
|
||||
/** \example datastore_iterators.cpp
|
||||
* Iterator-base data Management in JKQTPDatastore.
|
||||
*
|
||||
* \ref JKQTPlotterBasicJKQTPDatastoreIterators
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_datastore_iterators.cpp
|
||||
SOURCES = datastore_iterators.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,15 +7,15 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_datastore_iterators
|
||||
TARGET = datastore_iterators
|
||||
|
||||
# include JKQTPlotter source headers and link against library
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib datastore_iterators
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
datastore_iterators.file=$$PWD/datastore_iterators.pro
|
||||
datastore_iterators.depends = jkqtplotterlib
|
28
examples/datastore_regression/CMakeLists.txt
Normal file
28
examples/datastore_regression/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME datastore_regression)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -8,7 +8,7 @@
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatistics2D]: @ref JKQTPlotterBasicJKQTPDatastoreStatistics2D "Advanced 2-Dimensional Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
|
||||
This tutorial project (see `./examples/simpletest_datastore_statistics/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
This tutorial project (see `./examples/datastore_statistics/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
|
||||
***Note*** that there are additional tutorial explaining other aspects of data mangement in JKQTPDatastore:
|
||||
- [JKQTPlotterBasicJKQTPDatastore]
|
||||
@ -21,7 +21,7 @@ This tutorial project (see `./examples/simpletest_datastore_statistics/`) explai
|
||||
|
||||
[TOC]
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_datastore_regression.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics/jkqtplotter_simpletest_datastore_regression.cpp).
|
||||
The source code of the main application can be found in [`datastore_regression.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics/datastore_regression.cpp).
|
||||
This tutorial cites only parts of this code to demonstrate different ways of performing regression analysis.
|
||||
|
||||
# Simple Linear Regression
|
||||
@ -75,7 +75,7 @@ Here the x- and y-columns from the `JKQTPXYGraph`-based graph `graphD` (see abov
|
||||
|
||||
The plot resulting from any of the variants above looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression_lin](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_lin.png)
|
||||
![datastore_regression_lin](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_lin.png)
|
||||
|
||||
# Robust Linear Regression
|
||||
|
||||
@ -123,13 +123,13 @@ and
|
||||
|
||||
The following screenshot shows the result of the IRLS regression analysis and for comparison the normal linear regression for the same dataset (plotted using `jkqtpstatAddLinearRegression(graphD);`):
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression_linrobust](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_linrobust.png)
|
||||
![datastore_regression_linrobust](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_linrobust.png)
|
||||
|
||||
The following screenshot shows the influence of the regularization parameter p (default value 1.1) onto the fit result:
|
||||
- the closer `p` is to 1, the more robust the fit is (it is closer to the L1-norm)
|
||||
- the closer `p` is to 2, the closer the fit is to the least squares solution (i.e. the normal regression obtained with the L2 norm)
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression_linrobust_p](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_linrobust_p.png)
|
||||
![datastore_regression_linrobust_p](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_linrobust_p.png)
|
||||
|
||||
|
||||
|
||||
@ -203,7 +203,7 @@ Here the x- and y-columns from the `JKQTPXYGraph`-based graph `graphE` (see abov
|
||||
|
||||
The plot resulting from any of the variants above looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression_linweight](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_linweight.png)
|
||||
![datastore_regression_linweight](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_linweight.png)
|
||||
|
||||
For this plot we also added a call to
|
||||
```.cpp
|
||||
@ -282,7 +282,7 @@ The regression models can be plotted using a `JKQTPXFunctionLineGraph`. the fucn
|
||||
|
||||
The resulting plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression_nonlinreg](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_nonlinreg.png)
|
||||
![datastore_regression_nonlinreg](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_nonlinreg.png)
|
||||
|
||||
Of course also "adaptors" exist that allow to perform the steps above in a single function call:
|
||||
|
||||
@ -347,11 +347,11 @@ Each model is also ploted using a `JKQTPXFunctionLineGraph`. The plot function a
|
||||
|
||||
The resulting plots look like this (without added gaussian noise):
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression_polynom](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_polynom.png)
|
||||
![datastore_regression_polynom](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_polynom.png)
|
||||
|
||||
... and with added gaussian noise:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression_polynom_errros](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression_polynom_errros.png)
|
||||
![datastore_regression_polynom_errros](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression_polynom_errros.png)
|
||||
|
||||
Of course also the "adaptor" shortcuts are available:
|
||||
```.cpp
|
||||
@ -363,8 +363,8 @@ Of course also the "adaptor" shortcuts are available:
|
||||
|
||||
# Screenshot of the full Program
|
||||
|
||||
The output of the full test program [`jkqtplotter_simpletest_datastore_regression.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics/jkqtplotter_simpletest_datastore_regression.cpp) looks like this:
|
||||
The output of the full test program [`datastore_regression.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics/datastore_regression.cpp) looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_regression](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_regression.png)
|
||||
![datastore_regression](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_regression.png)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_datastore_regression.cpp
|
||||
/** \example datastore_regression.cpp
|
||||
* Explains how to use the internal statistics library (see \ref jkqtptools_statistics ) together with JKQTPDatastore to perform different types of regression and polynomial fitting.
|
||||
*
|
||||
* \ref JKQTPlotterBasicJKQTPDatastoreRegression
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_datastore_regression.cpp
|
||||
SOURCES = datastore_regression.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,15 +7,15 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_datastore_regression
|
||||
TARGET = datastore_regression
|
||||
|
||||
# include JKQTPlotter source headers and link against library
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib datastore_regression
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
datastore_regression.file=$$PWD/datastore_regression.pro
|
||||
datastore_regression.depends = jkqtplotterlib
|
28
examples/datastore_statistics/CMakeLists.txt
Normal file
28
examples/datastore_statistics/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME datastore_statistics)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -8,7 +8,7 @@
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatistics2D]: @ref JKQTPlotterBasicJKQTPDatastoreStatistics2D "Advanced 2-Dimensional Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
|
||||
This tutorial project (see `./examples/simpletest_datastore_statistics/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
This tutorial project (see `./examples/datastore_statistics/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
|
||||
***Note*** that there are additional tutorial explaining other aspects of data mangement in JKQTPDatastore:
|
||||
- [JKQTPlotterBasicJKQTPDatastore]
|
||||
@ -20,7 +20,7 @@ This tutorial project (see `./examples/simpletest_datastore_statistics/`) explai
|
||||
|
||||
[TOC]
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_datastore_statistics.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics/jkqtplotter_simpletest_datastore_statistics.cpp).
|
||||
The source code of the main application can be found in [`datastore_statistics.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics/datastore_statistics.cpp).
|
||||
This tutorial cites only parts of this code to demonstrate different ways of working with data for the graphs.
|
||||
|
||||
# Generating different sets of random numbers
|
||||
@ -64,7 +64,7 @@ The three sets of random numbers from above can be visualized e.g. by a `JKQTPPe
|
||||
|
||||
This (if repeated for all three columns) results in a plot like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_dataonly](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_dataonly.png)
|
||||
![datastore_statistics_dataonly](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_dataonly.png)
|
||||
|
||||
Based on the raw data we can now use JKQTPlotter's [statisticslibrary] to calculate some basic properties, like the average (`jkqtpstatAverage()`) or the standard deviation (`jkqtpstatStdDev()`):
|
||||
|
||||
@ -132,7 +132,7 @@ In order to save you the work of writing out this code, the [statisticslibrary]
|
||||
|
||||
Here `-0.25`indicates the location (on the y-axis) of the boxplot. and the plot is calculated for the data in the `JKQTPDatastore` column `randomdatacol2`.
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_boxplots_simple](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_boxplots_simple.png)
|
||||
![datastore_statistics_boxplots_simple](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_boxplots_simple.png)
|
||||
|
||||
## Boxplots with Outliers
|
||||
|
||||
@ -148,7 +148,7 @@ Usually the boxplot draws its whiskers at the minimum and maximum value of the d
|
||||
|
||||
As you can see this restuns the `JKQTPBoxplotHorizontalElement` and in addition a `JKQTPSingleColumnSymbolsGraph` for the display of the outliers. The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_boxplots_outliers](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_boxplots_outliers.png)
|
||||
![datastore_statistics_boxplots_outliers](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_boxplots_outliers.png)
|
||||
|
||||
|
||||
|
||||
@ -175,7 +175,7 @@ Again there are "adaptors" which significanty reduce the amount of coude you hav
|
||||
|
||||
The resulting plot looks like this (the distributions used to generate the random data are also shown as line plots!):
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_hist](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_hist.png)
|
||||
![datastore_statistics_hist](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_hist.png)
|
||||
|
||||
|
||||
|
||||
@ -223,7 +223,7 @@ Again a shortcut "adaptor" simplifies this task:
|
||||
|
||||
Plots that result from such calls look like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_kde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_kde.png)
|
||||
![datastore_statistics_kde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_kde.png)
|
||||
|
||||
|
||||
# Cummulative Histograms and KDEs
|
||||
@ -238,14 +238,14 @@ Both histograms and KDEs support a parameter `bool cummulative`, which allows to
|
||||
false, true);
|
||||
```
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_cumhistkde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_cumhistkde.png)
|
||||
![datastore_statistics_cumhistkde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_cumhistkde.png)
|
||||
|
||||
|
||||
|
||||
# Screenshot of the full Program
|
||||
|
||||
The output of the full test program [`jkqtplotter_simpletest_datastore_statistics.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics/jkqtplotter_simpletest_datastore_statistics.cpp) looks like this:
|
||||
The output of the full test program [`datastore_statistics.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics/datastore_statistics.cpp) looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics.png)
|
||||
![datastore_statistics](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics.png)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_datastore_statistics.cpp
|
||||
/** \example datastore_statistics.cpp
|
||||
* Explains how to use the internal statistics library (see \ref jkqtptools_statistics ) together with JKQTPDatastore to generate advanced plots for 1-dimensional data.
|
||||
*
|
||||
* \ref JKQTPlotterBasicJKQTPDatastoreStatistics
|
27
examples/datastore_statistics/datastore_statistics.pro
Normal file
27
examples/datastore_statistics/datastore_statistics.pro
Normal file
@ -0,0 +1,27 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = datastore_statistics.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = datastore_statistics
|
||||
|
||||
# include JKQTPlotter source headers and link against library
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
||||
win32-msvc*: DEFINES += _USE_MATH_DEFINES
|
||||
win32-msvc*: DEFINES += NOMINMAX
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib datastore_statistics
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
datastore_statistics.file=$$PWD/datastore_statistics.pro
|
||||
datastore_statistics.depends = jkqtplotterlib
|
28
examples/datastore_statistics_2d/CMakeLists.txt
Normal file
28
examples/datastore_statistics_2d/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME datastore_statistics_2d)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -8,7 +8,7 @@
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatistics2D]: @ref JKQTPlotterBasicJKQTPDatastoreStatistics2D "Advanced 2-Dimensional Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
|
||||
This tutorial project (see `./examples/simpletest_datastore_statistics_2d/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
This tutorial project (see `./examples/datastore_statistics_2d/`) explains several advanced functions of JKQTPDatastore in combination with the [[statisticslibrary]] conatined in JKQTPlotter.
|
||||
|
||||
***Note*** that there are additional tutorial explaining other aspects of data mangement in JKQTPDatastore:
|
||||
- [JKQTPlotterBasicJKQTPDatastore]
|
||||
@ -20,7 +20,7 @@ This tutorial project (see `./examples/simpletest_datastore_statistics_2d/`) exp
|
||||
|
||||
[TOC]
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_datastore_statistics_2d.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics_2d/jkqtplotter_simpletest_datastore_statistics_2d.cpp).
|
||||
The source code of the main application can be found in [`datastore_statistics_2d.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics_2d/datastore_statistics_2d.cpp).
|
||||
This tutorial cites only parts of this code to demonstrate different ways of working with data for the graphs.
|
||||
|
||||
# Generating different sets of random numbers
|
||||
@ -95,7 +95,7 @@ In addition to get an idea of the used distributions, we can add two ellipses in
|
||||
|
||||
The resulting plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d_scatteronly](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_scatteronly.png)
|
||||
![datastore_statistics_2d_scatteronly](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_scatteronly.png)
|
||||
|
||||
|
||||
# Marginal Statistics
|
||||
@ -140,7 +140,7 @@ Note that the plots are put into `JKQTPlotter`-instances `plothistBottom` and `p
|
||||
|
||||
This results in a graph like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d_marginhist](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_marginhist.png)
|
||||
![datastore_statistics_2d_marginhist](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_marginhist.png)
|
||||
|
||||
With the same method, also marginal Kernel Density Estimates can be drawn:
|
||||
|
||||
@ -151,7 +151,7 @@ With the same method, also marginal Kernel Density Estimates can be drawn:
|
||||
jkqtpstatAddVKDE1DAutoranged(plotkdeRight->getPlotter(), datastore1->begin(randomdatacoly_small), datastore1->end(randomdatacoly_small), 0.01, &jkqtpstatKernel1DGaussian, bwy);
|
||||
```
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d_marginkde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_marginkde.png)
|
||||
![datastore_statistics_2d_marginkde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_marginkde.png)
|
||||
|
||||
|
||||
# 2D Histogram
|
||||
@ -195,7 +195,7 @@ Finally the histogram is drawn using a `JKQTPColumnMathImage`:
|
||||
|
||||
The resulting image plot looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d_hist](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_hist.png)
|
||||
![datastore_statistics_2d_hist](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_hist.png)
|
||||
|
||||
There is also an "adaptor" which significanty reduce the amount of coude you have to type (i.e. it replaces all the code above):
|
||||
|
||||
@ -207,7 +207,7 @@ There is also an "adaptor" which significanty reduce the amount of coude you hav
|
||||
These differ in the type of plot that is added `jkqtpstatAddHistogram2DImage()` adds an image graph (`JKQTPColumnMathImage`) and `jkqtpstatAddHistogram2DContour()` adds a contour plot (`JKQTPColumnContourPlot`). A contour plot may look like this:
|
||||
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d_histcontour](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_histcontour.png)
|
||||
![datastore_statistics_2d_histcontour](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_histcontour.png)
|
||||
|
||||
|
||||
|
||||
@ -260,7 +260,7 @@ Finally the histogram is drawn using a `JKQTPColumnMathImage`:
|
||||
|
||||
The resulting plot image looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d_kde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_kde.png)
|
||||
![datastore_statistics_2d_kde](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_kde.png)
|
||||
|
||||
Note that calculating a KDE is a rather time-consuming task. The KDE in the image above took about 8s to calculate (from 150 datapairs and on a 193*267 pixel grid), whereas the corresponding histogram took only 1ms to calculate!
|
||||
|
||||
@ -273,15 +273,15 @@ There is also an "adaptor" which significanty reduce the amount of coude you hav
|
||||
|
||||
These differ in the type of plot that is added `jkqtpstatAddKDE2DImage()` adds an image graph (`JKQTPColumnMathImage`) and `jkqtpstatAddKDE2DContour()` adds a contour plot (`JKQTPColumnContourPlot`). the first is shown in the screenshot above, the latter looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d_kdecontour](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d_kdecontour.png)
|
||||
![datastore_statistics_2d_kdecontour](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_kdecontour.png)
|
||||
|
||||
|
||||
|
||||
|
||||
# Screenshot of the full Program
|
||||
|
||||
The output of the full test program [`jkqtplotter_simpletest_datastore_statistics_2d.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics_2d/jkqtplotter_simpletest_datastore_statistics_2d.cpp) looks like this:
|
||||
The output of the full test program [`datastore_statistics_2d.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics_2d/datastore_statistics_2d.cpp) looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_datastore_statistics_2d](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_datastore_statistics_2d.png)
|
||||
![datastore_statistics_2d](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d.png)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_datastore_statistics_2d.cpp
|
||||
/** \example datastore_statistics_2d.cpp
|
||||
* Explains how to use the internal statistics library (see \ref jkqtptools_statistics ) together with JKQTPDatastore to generate advanced plots for 2-dimensional data.
|
||||
*
|
||||
* \ref JKQTPlotterBasicJKQTPDatastoreStatistics2D
|
||||
@ -159,12 +159,12 @@ int main(int argc, char* argv[])
|
||||
|
||||
|
||||
// 3. Marginal (1D) Statistics of the x-position and y-position deistributions:
|
||||
// 3.1. First we calculate the x/y marginal histograms, as desribed in https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics
|
||||
// 3.1. First we calculate the x/y marginal histograms, as desribed in https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics
|
||||
timer.start();
|
||||
jkqtpstatAddHHistogram1DAutoranged(plothistBottom->getPlotter(), datastore1->begin(randomdatacolx), datastore1->end(randomdatacolx), 1.0, true);
|
||||
jkqtpstatAddVHistogram1DAutoranged(plothistLeft->getPlotter(), datastore1->begin(randomdatacoly), datastore1->end(randomdatacoly), 1.0, true);
|
||||
qDebug()<<"histogram, 1D: "<<timer.elapsed()/2.0<<"ms";
|
||||
// 3.2. Also we calculate the x/y marginal kernel density estimates, as desribed in https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_datastore_statistics
|
||||
// 3.2. Also we calculate the x/y marginal kernel density estimates, as desribed in https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics
|
||||
timer.start();
|
||||
double bwx=jkqtpstatEstimateKDEBandwidth(datastore1->begin(randomdatacolx_small), datastore1->end(randomdatacolx_small));
|
||||
qDebug()<<bwx;
|
27
examples/datastore_statistics_2d/datastore_statistics_2d.pro
Normal file
27
examples/datastore_statistics_2d/datastore_statistics_2d.pro
Normal file
@ -0,0 +1,27 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = datastore_statistics_2d.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = datastore_statistics_2d
|
||||
|
||||
# include JKQTPlotter source headers and link against library
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
||||
win32-msvc*: DEFINES += _USE_MATH_DEFINES
|
||||
win32-msvc*: DEFINES += NOMINMAX
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib datastore_statistics_2d
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
datastore_statistics_2d.file=$$PWD/datastore_statistics_2d.pro
|
||||
datastore_statistics_2d.depends = jkqtplotterlib
|
28
examples/dateaxes/CMakeLists.txt
Normal file
28
examples/dateaxes/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME dateaxes)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES ${EXAMPLE_NAME}.qrc)
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -4,9 +4,9 @@
|
||||
|
||||
# Date Axis
|
||||
|
||||
This project (see `./examples/simpletest_dateaxes/`) simply creates a JKQTPlotter widget (as a new window) with the X-axis showing time or date(-time) values, formated as such.
|
||||
This project (see `./examples/dateaxes/`) simply creates a JKQTPlotter widget (as a new window) with the X-axis showing time or date(-time) values, formated as such.
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_dateaxes.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.cpp).
|
||||
The source code of the main application can be found in [`dateaxes.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/dateaxes/dateaxes.cpp).
|
||||
|
||||
First some data is parsed from a CSV-file (added as ressource to the example). Note that the Time/date or Date+Time data is internally stored as milliseconds since epoc (Jan 1st 1970, 00:00:00), therefore data has to be converted accordingly before beeing added to the graph.
|
||||
|
||||
@ -109,14 +109,14 @@ Finally the x-axis is formatted to display dates (see [Qt-Documentation of `QDat
|
||||
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes.png)
|
||||
![symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/dateaxes.png)
|
||||
|
||||
|
||||
# Time Axis
|
||||
|
||||
A second variant (see the example CPP-file) displays data with a time-axis:
|
||||
|
||||
![jkqtplotter_simpletest_symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_timeaxis.png)
|
||||
![symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/dateaxes_timeaxis.png)
|
||||
|
||||
|
||||
For that example data-pasring is a bit different, because the file only contains times and no dates:
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_dateaxes.cpp
|
||||
/** \example dateaxes.cpp
|
||||
* Shows how to use date/time axes with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterDateTimeAxes
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_imageplot.cpp
|
||||
SOURCES = dateaxes.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,21 +7,24 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_imageplot
|
||||
TARGET = dateaxes
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
||||
|
||||
|
||||
win32-msvc*: DEFINES += _USE_MATH_DEFINES
|
||||
win32-msvc*: DEFINES += NOMINMAX
|
||||
|
||||
|
||||
|
||||
|
||||
RESOURCES += \
|
||||
dateaxes.qrc
|
8
examples/dateaxes/dateaxes_and_lib.pro
Normal file
8
examples/dateaxes/dateaxes_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib dateaxes
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
dateaxes.file=$$PWD/dateaxes.pro
|
||||
dateaxes.depends = jkqtplotterlib
|
28
examples/distributionplot/CMakeLists.txt
Normal file
28
examples/distributionplot/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME distributionplot)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES test_distributionplot.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -23,12 +23,12 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
TARGET = test_distributionplot
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
@ -2,7 +2,7 @@ TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib test_distributionplot
|
||||
|
||||
jkqtplotterlib.file = ../../staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
test_distributionplot.file=$$PWD/test_distributionplot.pro
|
||||
test_distributionplot.depends = jkqtplotterlib
|
28
examples/errorbarstyles/CMakeLists.txt
Normal file
28
examples/errorbarstyles/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME errorbarstyles)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,14 +1,14 @@
|
||||
# Example (JKQTPlotter): Different Types of Errorindicators {#JKQTPlotterErrorBarStyles}
|
||||
This project (see `./examples/simpletest_errorbarstyles/`) simply creates a JKQTPlotter widget (as a new window) and adds several curves show-casing different styles of error indicators. Data is initialized from two QVector<double> objects.
|
||||
This project (see `./examples/errorbarstyles/`) simply creates a JKQTPlotter widget (as a new window) and adds several curves show-casing different styles of error indicators. Data is initialized from two QVector<double> objects.
|
||||
|
||||
[JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat]: @ref JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat "1-Dimensional Group Statistics with JKQTPDatastore"
|
||||
[statisticslibrary]: @ref jkqtptools_math_statistics "JKQTPlotter Statistics Library"
|
||||
|
||||
***Note:*** This examples explains how to plot graphs with error indicators, when the data has already been calculated. The tutorial [JKQTPlotterBasicJKQTPDatastoreStatisticsGroupedStat] explains one way how to use the [statisticslibrary] in order to calculate the errors from data.
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_errorbarstyles.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_errorbarstyles/jkqtplotter_simpletest_errorbarstyles.cpp).
|
||||
The source code of the main application can be found in [`errorbarstyles.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/errorbarstyles/errorbarstyles.cpp).
|
||||
|
||||
First some data is added to the internal datastore (mostly, like explained in several other examples, like e.g. [Line Graph with Different Symbols and Line Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_styles)). The (in a loop) several graphs are added, each with a distinct style for its error indicators:
|
||||
First some data is added to the internal datastore (mostly, like explained in several other examples, like e.g. [Line Graph with Different Symbols and Line Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/symbols_and_styles)). The (in a loop) several graphs are added, each with a distinct style for its error indicators:
|
||||
|
||||
```.cpp
|
||||
// 3. now we make several plots with different error styles
|
||||
@ -109,12 +109,12 @@ In addition the plot key is moved outside the pot and the grid in the plot is sw
|
||||
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_errorbarstyles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles.png)
|
||||
![errorbarstyles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/errorbarstyles.png)
|
||||
|
||||
Error bars are implemented in the mixin-classes `JKQTPXYGraphErrors`, `JKQTPXGraphErrors` and `JKQTPYGraphErrors` that are all derived from `JKQTPGraphErrors`. With these it is simple to add error indicators to several different plot styles. Usually you can recognize these by looking at the class name, e.g. `JKQTPXYLineGraph` is a simple line+symbol graph, and `JKQTPXYLineErrorGraph` is the same with error indictaors (see above). There are also several other plots with error indicators:
|
||||
- `JKQTPBarVerticalErrorGraph` for barcharts with errors:<br>![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles_barcharts.png)
|
||||
- `JKQTPImpulsesVerticalGraph` for impulse/candle-stick charts with errors:<br>![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles_impulses.png)
|
||||
- `JKQTPFilledCurveXErrorGraph` for filled curves with errors:<br>![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles_filledcurves.png)
|
||||
- `JKQTPBarVerticalErrorGraph` for barcharts with errors:<br>![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/errorbarstyles_barcharts.png)
|
||||
- `JKQTPImpulsesVerticalGraph` for impulse/candle-stick charts with errors:<br>![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/errorbarstyles_impulses.png)
|
||||
- `JKQTPFilledCurveXErrorGraph` for filled curves with errors:<br>![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/errorbarstyles_filledcurves.png)
|
||||
.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_errorbarstyles.cpp
|
||||
/** \example errorbarstyles.cpp
|
||||
* Shows how to use different error indicator styles with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterErrorBarStyles
|
26
examples/errorbarstyles/errorbarstyles.pro
Normal file
26
examples/errorbarstyles/errorbarstyles.pro
Normal file
@ -0,0 +1,26 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = errorbarstyles.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = errorbarstyles
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
||||
|
||||
win32-msvc*: DEFINES += _USE_MATH_DEFINES
|
||||
win32-msvc*: DEFINES += NOMINMAX
|
||||
|
||||
|
8
examples/errorbarstyles/errorbarstyles_and_lib.pro
Normal file
8
examples/errorbarstyles/errorbarstyles_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib errorbarstyles
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
errorbarstyles.file=$$PWD/errorbarstyles.pro
|
||||
errorbarstyles.depends = jkqtplotterlib
|
28
examples/filledgraphs/CMakeLists.txt
Normal file
28
examples/filledgraphs/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME filledgraphs)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES filledgraphs.qrc )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,7 +1,7 @@
|
||||
# Example (JKQTPlotter): Filled Curve Plots {#JKQTPlotterFilledGraphs}
|
||||
This project (see `./examples/simpletest_filledgraphs/`) simply creates a JKQTPlotter widget (as a new window) and adds several filled curve graphs (Histograms). Data is initialized from QVector<int> objects.
|
||||
This project (see `./examples/filledgraphs/`) simply creates a JKQTPlotter widget (as a new window) and adds several filled curve graphs (Histograms). Data is initialized from QVector<int> objects.
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_filledgraphs.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_filledgraphs/jkqtplotter_simpletest_filledgraphs.cpp).
|
||||
The source code of the main application can be found in [`filledgraphs.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/filledgraphs/filledgraphs.cpp).
|
||||
|
||||
First the data columns for three x-y-curves are generated. One column of x-values with entries 0,1,2,...,254,255 (256 entries).
|
||||
```.cpp
|
||||
@ -65,11 +65,11 @@ The curves are fille with a semi-transparent color, which is achieved by setting
|
||||
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_filledgraphs](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_filledgraphs.png)
|
||||
![filledgraphs](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/filledgraphs.png)
|
||||
|
||||
If you use `JKQTPFilledCurveYGraph` instead of `JKQTPFilledCurveXGraph`, the curve will not be filled until the y=0-axis, but until the x=0-axis. Of course you will also have to swap the x- and y-data columns. The result will look like this:
|
||||
|
||||
![jkqtplotter_simpletest_filledgraphs_yaxis](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_filledgraphs_yaxis.png)
|
||||
![filledgraphs_yaxis](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/filledgraphs_yaxis.png)
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 242 KiB After Width: | Height: | Size: 242 KiB |
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_filledgraphs.cpp
|
||||
/** \example filledgraphs.cpp
|
||||
* Shows how to use filled graphs with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterFilledGraphs
|
@ -1,5 +1,7 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_parametriccurve.cpp
|
||||
SOURCES = filledgraphs.cpp
|
||||
|
||||
RESOURCES += filledgraphs.qrc
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,16 +9,16 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_parametriccurve
|
||||
TARGET = filledgraphs
|
||||
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib/jkqtplotterlib
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
8
examples/filledgraphs/filledgraphs_and_lib.pro
Normal file
8
examples/filledgraphs/filledgraphs_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib filledgraphs
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
filledgraphs.file=$$PWD/filledgraphs.pro
|
||||
filledgraphs.depends = jkqtplotterlib
|
28
examples/functionplot/CMakeLists.txt
Normal file
28
examples/functionplot/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME functionplot)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,6 +1,6 @@
|
||||
# Example (JKQTPlotter): Plotting Mathematical Functions as Line Graphs {#JKQTPlotterFunctionPlots}
|
||||
## Basics
|
||||
This project (see `./examples/simpletest_functionplot/`) demonstrates how to plot mathematical functions as line graphs. The functions may be defined as static C functions, C++ functors or c++ inline functions. See [examples/simpletest_parsedfunctionplot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parsedfunctionplot) for an example of how to use an internal equation parser provided with JKQTPlotter instead of directly defining functions.
|
||||
This project (see `./examples/functionplot/`) demonstrates how to plot mathematical functions as line graphs. The functions may be defined as static C functions, C++ functors or c++ inline functions. See [examples/parsedfunctionplot](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/parsedfunctionplot) for an example of how to use an internal equation parser provided with JKQTPlotter instead of directly defining functions.
|
||||
|
||||
[TOC]
|
||||
|
||||
@ -112,16 +112,16 @@ JKQTPXFunctionLineGraph* func7=new JKQTPXFunctionLineGraph(plot);
|
||||
|
||||
This code snippets above result in a plot like this:
|
||||
|
||||
![jkqtplotter_simpletest_functionplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_functionplot.png)
|
||||
![functionplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/functionplot.png)
|
||||
|
||||
# Notes
|
||||
|
||||
Note that all the different variants to provide parameters can be used with all types of functions!
|
||||
|
||||
Also see the example [Plotting Parsed Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parsedfunctionplot) for details on how the actual plotting algorithm works. That example also shows how to define a function as a string, which is then parsed and evaluated by an expression parser library embedded in JKQTPlotter.
|
||||
Also see the example [Plotting Parsed Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/parsedfunctionplot) for details on how the actual plotting algorithm works. That example also shows how to define a function as a string, which is then parsed and evaluated by an expression parser library embedded in JKQTPlotter.
|
||||
|
||||
All examples above use the graph class `JKQTPXFunctionLineGraph`, which plots a function `y=f(x)`. If you want to plot a function `x=f(y)`, you can use the class `JKQTPYFunctionLineGraph` instead. If in the examples above, we exchange all `JKQTPXFunctionLineGraph` for `JKQTPYFunctionLineGraph`, the graphs will be rotated by 90 degree, as all functions are interpreted as `x=f(y)`:
|
||||
|
||||
![jkqtplotter_simpletest_functionplot_fy](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_functionplot_fy.png)
|
||||
![functionplot_fy](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/functionplot_fy.png)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_functionplot.cpp
|
||||
/** \example functionplot.cpp
|
||||
* Shows how to plot Mathematical Functions as Line Graphs with JKQTPlotter (as evaluated C/C++ functions)
|
||||
*
|
||||
* \ref JKQTPlotterFunctionPlots
|
28
examples/functionplot/functionplot.pro
Normal file
28
examples/functionplot/functionplot.pro
Normal file
@ -0,0 +1,28 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = functionplot.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = functionplot
|
||||
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../qmake/staticlib/jkqtplotterlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
||||
win32-msvc*: DEFINES += _USE_MATH_DEFINES
|
||||
win32-msvc*: DEFINES += NOMINMAX
|
||||
|
||||
|
||||
|
||||
|
8
examples/functionplot/functionplot_and_lib.pro
Normal file
8
examples/functionplot/functionplot_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib functionplot
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
functionplot.file=$$PWD/functionplot.pro
|
||||
functionplot.depends = jkqtplotterlib
|
28
examples/geometric/CMakeLists.txt
Normal file
28
examples/geometric/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME geometric)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,7 +1,8 @@
|
||||
# Example (JKQTPlotter): Plotting Geometric Objects {#JKQTPlotterGeometricGraphs}
|
||||
This project (see `./test/simpletest_geometric/`) shows the capabilities of JKQTPlotter to also draw geometric elements, like circles, ellipses, rectangles etc.
|
||||
|
||||
The source code of the main application can be found in [`jkqtplotter_simpletest_geometric.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_geometric/jkqtplotter_simpletest_geometric.cpp). First a plot is generated and the axis aspect ratio is set to 1, so an accurate plot is generated. Then several geometric graphs are added to the plot. Here are some examples, you can find more more examples in the source code of the example:
|
||||
This project shows the capabilities of JKQTPlotter to also draw geometric elements, like circles, ellipses, rectangles etc.
|
||||
|
||||
The source code of the main application can be found in [`geometric.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/geometric/geometric.cpp). First a plot is generated and the axis aspect ratio is set to 1, so an accurate plot is generated. Then several geometric graphs are added to the plot. Here are some examples, you can find more more examples in the source code of the example:
|
||||
|
||||
```.cpp
|
||||
// a text element
|
||||
@ -67,7 +68,7 @@ The source code of the main application can be found in [`jkqtplotter_simpletes
|
||||
|
||||
The result of the example combines all these elements and looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_geometric](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_geometric.png)
|
||||
![geometric](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/geometric.png)
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/** \example jkqtplotter_simpletest_geometric.cpp
|
||||
/** \example geometric.cpp
|
||||
* Shows how to plot several geometric forms with JKQTPlotter
|
||||
*
|
||||
* \ref JKQTPlotterGeometricGraphs
|
@ -1,5 +1,5 @@
|
||||
# source code for this simple demo
|
||||
SOURCES = jkqtplotter_simpletest_geometric.cpp
|
||||
SOURCES = geometric.cpp
|
||||
|
||||
# configure Qt
|
||||
CONFIG += link_prl qt
|
||||
@ -7,15 +7,15 @@ QT += core gui xml svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
# output executable name
|
||||
TARGET = jkqtplotter_simpletest_geometric
|
||||
TARGET = geometric
|
||||
|
||||
# include JKQTPlotter source code
|
||||
DEPENDPATH += ../../lib ../../staticlib
|
||||
INCLUDEPATH += ../../lib
|
||||
CONFIG (debug, debug|release) {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/debug -ljkqtplotterlib_debug
|
||||
} else {
|
||||
LIBS += -L../../staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
LIBS += -L../../qmake/staticlib/jkqtplotterlib/release -ljkqtplotterlib
|
||||
}
|
||||
message("LIBS = $$LIBS")
|
||||
|
8
examples/geometric/geometric_and_lib.pro
Normal file
8
examples/geometric/geometric_and_lib.pro
Normal file
@ -0,0 +1,8 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += jkqtplotterlib geometric
|
||||
|
||||
jkqtplotterlib.file = ../../qmake/staticlib/jkqtplotterlib/jkqtplotterlib.pro
|
||||
|
||||
geometric.file=$$PWD/geometric.pro
|
||||
geometric.depends = jkqtplotterlib
|
28
examples/imageplot/CMakeLists.txt
Normal file
28
examples/imageplot/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(EXAMPLE_NAME imageplot)
|
||||
set(EXENAME jkqtptest_${EXAMPLE_NAME})
|
||||
|
||||
message( STATUS ".. Building Example ${EXAMPLE_NAME}" )
|
||||
|
||||
|
||||
# Set up source files
|
||||
set(SOURCES ${EXAMPLE_NAME}.cpp)
|
||||
set(HEADERS )
|
||||
set(RESOURCES )
|
||||
set(UIS )
|
||||
|
||||
add_executable(${EXENAME} WIN32 ${SOURCES} ${HEADERS} ${RESOURCES} ${UIS})
|
||||
target_include_directories(${EXENAME} PRIVATE ../../lib)
|
||||
if(BUILD_STATIC_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterLib)
|
||||
elseif(BUILD_SHARED_LIBS)
|
||||
target_link_libraries(${EXENAME} JKQTPlotterSharedLib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Installation
|
||||
if(LIB_INSTALL)
|
||||
install(TARGETS ${EXENAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif(LIB_INSTALL)
|
@ -1,7 +1,7 @@
|
||||
# Example (JKQTPlotter): Simple math image plot {#JKQTPlotterImagePlot}
|
||||
This project (see `./examples/simpletest_imageplot/`) simply creates a JKQTPlotter widget (as a new window) and adds a color-coded image plot of a mathematical function (here the Airy disk). The image is stored as a simple C-array in row-major ordering and then copied into a single column of the internal datasdtore (JKQTPMathImage could be directly used without the internal datastore). This very simple interface can also be used to interface with many common image processing libraries, like CImg or OpenCV.
|
||||
This project (see `./examples/imageplot/`) simply creates a JKQTPlotter widget (as a new window) and adds a color-coded image plot of a mathematical function (here the Airy disk). The image is stored as a simple C-array in row-major ordering and then copied into a single column of the internal datasdtore (JKQTPMathImage could be directly used without the internal datastore). This very simple interface can also be used to interface with many common image processing libraries, like CImg or OpenCV.
|
||||
|
||||
The source code of the main application is (see [`jkqtplotter_simpletest_imageplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot/jkqtplotter_simpletest_imageplot.cpp):
|
||||
The source code of the main application is (see [`imageplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/imageplot/imageplot.cpp):
|
||||
```.cpp
|
||||
#include <QApplication>
|
||||
#include <cmath>
|
||||
@ -111,7 +111,7 @@ int main(int argc, char* argv[])
|
||||
```
|
||||
The result looks like this:
|
||||
|
||||
![jkqtplotter_simpletest_imageplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot.png)
|
||||
![imageplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot.png)
|
||||
|
||||
There are several ways to modify the plot:
|
||||
1. You can set the color scale manually (here 0..2), by using
|
||||
@ -125,7 +125,7 @@ There are several ways to modify the plot:
|
||||
graph->setAutoImageRange(true);
|
||||
```
|
||||
from above. The result will look like this:<br>
|
||||
![jkqtplotter_simpletest_imageplot__scale02](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__scale02.png)<br>
|
||||
![imageplot__scale02](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot__scale02.png)<br>
|
||||
Note how the color scale is not used completely, because data really only scales between 0 and 1.
|
||||
2. If you set the color-range to 0.1 .. 0.8 with
|
||||
```
|
||||
@ -134,13 +134,13 @@ There are several ways to modify the plot:
|
||||
graph->setImageMax(0.8);
|
||||
```
|
||||
Then there will be datapoints above or below the range of the colorscale. The default behaviour of the graph is to use the first color of the palette for every pixel with a value below the minimum (here 0.1) and the last color in the palette for every pixel with a value above the maximum.<br>
|
||||
![jkqtplotter_simpletest_imageplot__smallscalelimitcolor](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__smallscalelimitcolor.png)<br>
|
||||
![imageplot__smallscalelimitcolor](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot__smallscalelimitcolor.png)<br>
|
||||
You can change this behaviour by `setRangeMinFailAction(),setRangeMaxFailAction()` with one of these parameters:
|
||||
- `JKQTPMathImageLastPaletteColor`: the default behaviour explained above
|
||||
- `JKQTPMathImageGivenColor`: use a color set by `setRangeMinFailColor(),setRangeMaxFailColor()` (here e.g. black for min and grey for max)<br>
|
||||
![jkqtplotter_simpletest_imageplot__smallscalecolor](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__smallscalecolor.png)
|
||||
![imageplot__smallscalecolor](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot__smallscalecolor.png)
|
||||
- `JKQTPMathImageTransparent`: draw pixels transparent<br>
|
||||
![jkqtplotter_simpletest_imageplot__smallscaletransparent](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__smallscaletransparent.png)
|
||||
![imageplot__smallscaletransparent](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/imageplot__smallscaletransparent.png)
|
||||
.
|
||||
.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user