diff --git a/doc/dot/jkqtplotter_graphhirarchy.dot b/doc/dot/jkqtplotter_graphhirarchy.dot index d17c3febcd..f00451413c 100644 --- a/doc/dot/jkqtplotter_graphhirarchy.dot +++ b/doc/dot/jkqtplotter_graphhirarchy.dot @@ -8,17 +8,17 @@ digraph { rank=same; - JKQTPPlotElement [URL="JKQTPPlotElement"]; + JKQTPPlotElement [URL="\link JKQTPPlotElement"]; noteJKQTPPlotElement [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\nelements drawn\nonto a plot"]; JKQTPPlotElement -> noteJKQTPPlotElement [style=dashed,arrowhead=none]; } { rank=same; - JKQTPGraph [URL="JKQTPPlotElement"]; + JKQTPGraph [URL="\link JKQTPPlotElement"]; noteJKQTPGraph [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\nactual graphs"]; JKQTPGraph -> noteJKQTPGraph [style=dashed,arrowhead=none]; - JKQTPPlotObject [URL="JKQTPPlotObject"]; + JKQTPPlotObject [URL="\link JKQTPPlotObject"]; noteJKQTPPlotObject [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\nnon-graph elements,\ne.g. geometric elements"]; JKQTPPlotObject -> noteJKQTPPlotObject [style=dashed,arrowhead=none]; } @@ -27,16 +27,16 @@ digraph { rank=same; - JKQTPXYGraph [URL="JKQTPXYGraph"] + JKQTPXYGraph [URL="\link JKQTPXYGraph"] noteJKQTPXYGraph [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\ngraphs based on\n (x,y) data pairs"]; JKQTPXYGraph -> noteJKQTPXYGraph [style=dashed,arrowhead=none]; - JKQTPSingleColumnGraph [URL="JKQTPSingleColumnGraph"] + JKQTPSingleColumnGraph [URL="\link JKQTPSingleColumnGraph"] noteJKQTPSingleColumnGraph [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\ngraphs based on only\n a single column of data"]; JKQTPSingleColumnGraph -> noteJKQTPSingleColumnGraph [style=dashed,arrowhead=none]; - JKQTPImageBase [URL="JKQTPImageBase"] + JKQTPImageBase [URL="\link JKQTPImageBase"] noteJKQTPImageBase [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\ngraphsthat represent \n2D images/matrices"]; JKQTPImageBase -> noteJKQTPImageBase [style=dashed,arrowhead=none]; - JKQTPGeoBaseLine [URL="JKQTPGeoBaseLine"]; + JKQTPGeoBaseLine [URL="\link JKQTPGeoBaseLine"]; noteJKQTPGeoBaseLine [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\ngeometric elements\nthat need line properties\n (color, width, ...)"]; JKQTPGeoBaseLine -> noteJKQTPGeoBaseLine [style=dashed,arrowhead=none]; } @@ -44,11 +44,11 @@ digraph { rank=same; - JKQTPMathImageBase [URL="JKQTPMathImageBase"] + JKQTPMathImageBase [URL="\link JKQTPMathImageBase"] noteJKQTPMathImageBase [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\ngeometric elements\nthat need area fill properties\n (fillcolor, pattern, ...)"]; JKQTPMathImageBase -> noteJKQTPMathImageBase [style=dashed,arrowhead=none]; - JKQTPGeoBaseFilled [URL="JKQTPGeoBaseFilled"]; + JKQTPGeoBaseFilled [URL="\link JKQTPGeoBaseFilled"]; noteJKQTPGeoBaseFilled [shape="note", color="lightyellow",style=filled,fontsize=8,label="base class for all\ngeometric elements\nthat need area fill properties\n (fillcolor, pattern, ...)"]; JKQTPGeoBaseFilled -> noteJKQTPGeoBaseFilled [style=dashed,arrowhead=none]; } diff --git a/doc/dox/jkqtplotter.dox b/doc/dox/jkqtplotter.dox index ab081d01cc..ff1c5fe47d 100644 --- a/doc/dox/jkqtplotter.dox +++ b/doc/dox/jkqtplotter.dox @@ -5,6 +5,9 @@ This group contains a set of tools that I've written over the years to enhance the C++ standard library. +\defgroup jkqtpplotterclasses_tools Support Classes/Structs/Functions for JKQTPlotter&JKQTBasePlotter +\ingroup jkqtptools + \defgroup tools_math Tools for Mathematical Computations & Equation Parsing \ingroup jkqtptools @@ -130,37 +133,179 @@ mainly used for the \ref jkqtplotter_imagelots "Image/Matrix graphs", but also b \defgroup jkqtplotter_basegraphs Baseclasses for Graphs \ingroup jkqtplotter_graphsgroup -\defgroup jkqtplotter_basegraphserrors Base Classes for Error Indicators -\ingroup jkqtplotter_basegraphs - +\defgroup jkqtplotter_basegraphserrors Mix-In Classes for Error Indicators +\ingroup jkqtplotter_graphsgroup \defgroup jkqtplotter_linesymbolgraphs Line/Symbol Graphs \ingroup jkqtplotter_graphsgroup +This group assembles graphs that show their data with symbols and optionally with connecting lines in diferent styles: + + + + + + +
Screenshot + Classes +
\image html beeswarmplot_small.png + JKQTPSingleColumnSymbolsGraph +
\image html jkqtplotter_simpletest_symbols_and_styles_small.png + JKQTPXYLineGraph, JKQTPXYLineErrorGraph +
\image html jkqtplotter_simpletest_paramscatterplot_small.png + JKQTPXYParametrizedScatterGraph, JKQTPXYParametrizedErrorScatterGraph +
\image html jkqtplotter_simpletest_stepplots_small.png + JKQTPStepHorizontalGraph, JKQTPStepVerticalGraph +
+ \defgroup jkqtplotter_linesymbolgraphs_simple Basic Line/Scatter Graphs \ingroup jkqtplotter_linesymbolgraphs + + + + + +
Screenshot + Classes +
\image html beeswarmplot_small.png + JKQTPSingleColumnSymbolsGraph +
\image html jkqtplotter_simpletest_symbols_and_styles_small.png + JKQTPXYLineGraph, JKQTPXYLineErrorGraph +
\image html jkqtplotter_simpletest_stepplots_small.png + JKQTPStepHorizontalGraph, JKQTPStepVerticalGraph +
+ + \defgroup jkqtplotter_linesymbolgraphs_param Parametrized Line/Scatter Graphs \ingroup jkqtplotter_linesymbolgraphs + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_paramscatterplot_small.png + JKQTPXYParametrizedScatterGraph, JKQTPXYParametrizedErrorScatterGraph +
+ \defgroup jkqtplotter_filledgraphs Filled Polygon/Area Graphs \ingroup jkqtplotter_graphsgroup + + + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_filledgraphs_small.png + JKQTPFilledCurveXGraph, JKQTPFilledCurveYGraph +
\image html plot_filledcurvexerrorplots_small.png + JKQTPFilledCurveXErrorGraph, JKQTPFilledCurveYErrorGraph +
\image html JKQTPfilledVerticalRangeGraph_WithLines_small.png + JKQTPFilledVerticalRangeGraph +
+ \defgroup jkqtplotter_functiongraphs Function Graphs \ingroup jkqtplotter_linesymbolgraphs + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_functionplot_small.png + JKQTPXParsedFunctionLineGraph, JKQTPYParsedFunctionLineGraph +
+ \defgroup jkqtplotter_parsedFgraphs Parsed Function Graphs \ingroup jkqtplotter_linesymbolgraphs -\defgroup jkqtplotter_barssticks Barcharts, Stick-Charts, ... + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_functionplot_small.png + JKQTPXFunctionLineGraph, JKQTPYFunctionLineGraph +
+ +\defgroup jkqtplotter_barssticks Barcharts, Impulse-Charts, ... \ingroup jkqtplotter_graphsgroup + + + + + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_barchart_small.png + JKQTPBarVerticalGraph, JKQTPBarHorizontalGraph +
\image html barchart_error_small.png + JKQTPBarVerticalErrorGraph, JKQTPBarHorizontalErrorGraph +
\image html JKQTPbarVerticalGraphStacked_small.png + JKQTPBarVerticalStackableGraph, JKQTPBarHorizontalStackableGraph +
\image html jkqtplotter_simpletest_impulsesplot_small.png + JKQTPImpulsesHorizontalGraph, JKQTPImpulsesVerticalGraph +
\image html impulses_errors_small.png + JKQTPImpulsesHorizontalErrorGraph, JKQTPImpulsesVerticalErrorGraph +
+ \defgroup jkqtplotter_statgraphs Statistical Graphs (e.g. Boxplots ...) \ingroup jkqtplotter_graphsgroup + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_boxplot_small.png + JKQTPBoxplotVerticalGraph, JKQTPBoxplotHorizontalGraph +
+ \defgroup jkqtplotter_geoplots Geometric Elements (Lines, Rectangles, ...) \ingroup jkqtplotter_graphsgroup + + + + + + + + + + + + +
Screenshot + Classes +
\image html symbol_symbol_filled_diamond.png + JKQTPGeoSymbol +
\image html geo_text_small.png + JKQTPGeoText +
\image html geo_line_small.png + JKQTPGeoLine, JKQTPGeoInfiniteLine, JKQTPGeoPolyLines +
\image html geo_rect_small.png + JKQTPGeoRectangle +
\image html geo_polygon_small.png + JKQTPGeoPolygon +
\image html geo_ellipse_small.png + JKQTPGeoEllipse +
\image html geo_arc_small.png + JKQTPGeoArc +
\image html geo_pie_small.png + JKQTPGeoPie +
\image html geo_chords_small.png + JKQTPGeoChord +
\image html geo_boxplot_small.png + JKQTPBoxplotVerticalElement, JKQTPBoxplotHorizontalElement +
+ Examples: - \ref JKQTPlotterGeometricGraphs . @@ -168,22 +313,112 @@ Examples: \defgroup jkqtplotter_diverse Diverse Other Graphs (Ranges, ...) \ingroup jkqtplotter_graphsgroup + + + + +
Screenshot + Classes +
\image html JKQTPHorizontalRange_small.png + JKQTPHorizontalRange, JKQTPVerticalRange +
\image html JKQTPPeakStreamGraphY_small.png + JKQTPPeakStreamGraph +
+ \defgroup jkqtplotter_imagelots Matrix/Image Plotting \ingroup jkqtplotter_graphsgroup -\defgroup jkqtplotter_imagelots_elements Image Plotting Graphs + + + + + + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_rgbimageplot_qt_small.png + JKQTPImage +
\image html JKQTPMathImageBaseModifyNone_small.png + JKQTPMathImage, JKQTPColumnMathImage +
\image html rgbimageplots_small.png + JKQTPRGBMathImage, JKQTPColumnRGBMathImage +
\image html overlayimage_small.png + JKQTPOverlayImage +
\image html overlayimageenhanced_small.png + JKQTPOverlayImageEnhanced, JKQTPColumnOverlayImageEnhanced +
\image html JKQTPContour_small.png + JKQTPContour +
+ +\defgroup jkqtplotter_imagelots_elements Matrix/Image Graphs \ingroup jkqtplotter_imagelots -\defgroup jkqtplotter_imagelots_tools Image Drawing Tools + + + + + + +
Screenshot + Classes +
\image html jkqtplotter_simpletest_rgbimageplot_qt_small.png + JKQTPImage +
\image html JKQTPMathImageBaseModifyNone_small.png + JKQTPMathImage, JKQTPColumnMathImage +
\image html jkqtplotter_simpletest_rgbimageplot_opencv_small.png + JKQTPRGBMathImage, JKQTPColumnRGBMathImage +
+ +\defgroup jkqtplotter_imagelots_overlays Image/Matrix Overlay Graphs +\ingroup jkqtplotter_imagelots + + + + + +
Screenshot + Classes +
\image html overlayimage_small.png + JKQTPOverlayImage +
\image html overlayimageenhanced_small.png + JKQTPOverlayImageEnhanced, JKQTPColumnOverlayImageEnhanced +
+ +\defgroup jkqtplotter_imagelots_tools Tool Functions & Classes for Image Drawing \ingroup jkqtplotter_imagelots \defgroup jkqtplotter_imagelots_contour Contour Graphs \ingroup jkqtplotter_imagelots + + + +
Screenshot + Classes +
\image html JKQTPContour_small.png + JKQTPContour +
\defgroup jkqtplotter_overlays Overlay Elements \ingroup jkqtplotter_elements + + + + + +
Screenshot + Classes +
+ JKQTPOverlayVerticalLine, JKQTPOverlayLine +
+ JKQTPOverlayVerticalRange +
+ JKQTPOverlayRectangle +
+ \defgroup jkqtpqtwidgetsttools Qt Widgets/Tools to work with JKQTPlotter diff --git a/doc/dox/mainpage.dox b/doc/dox/mainpage.dox index c693f818a3..10f84ca334 100644 --- a/doc/dox/mainpage.dox +++ b/doc/dox/mainpage.dox @@ -49,8 +49,8 @@ This software is licensed under the term of the GNU Lesser General Public Licens - may be used independently of JKQTPlotter - for more details, see: \ref jkqtfastplotter - \ref exampleTutorialProjects "extensive set of Examples and Tutorials" -- extensive doxygen-generated Online-Documentation (http://jkriege2.github.io/JKQTPlotter/index.html) -- source code hosted&developed on GitHub https://github.com/jkriege2/JKQTPlotter (including continuous integration builds: https://ci.appveyor.com/project/jkriege2/jkqtplotter/branch/master) +- extensive doxygen-generated Online-Documentation (http://jkriege2.github.io/JKQtPlotter/index.html) +- source code hosted&developed on GitHub https://github.com/jkriege2/JKQtPlotter (including continuous integration builds: https://ci.appveyor.com/project/jkriege2/jkqtplotter/branch/master) \image html screenshotsbanner.png diff --git a/doc/images/JKQTPContour.png b/doc/images/JKQTPContour.png index 7912c8ce07..62f9ce0254 100644 Binary files a/doc/images/JKQTPContour.png and b/doc/images/JKQTPContour.png differ diff --git a/doc/images/JKQTPContour_small.png b/doc/images/JKQTPContour_small.png new file mode 100644 index 0000000000..32be4f0f04 Binary files /dev/null and b/doc/images/JKQTPContour_small.png differ diff --git a/doc/images/JKQTPHorizontalRange.png b/doc/images/JKQTPHorizontalRange.png new file mode 100644 index 0000000000..6268758650 Binary files /dev/null and b/doc/images/JKQTPHorizontalRange.png differ diff --git a/doc/images/JKQTPHorizontalRange_small.png b/doc/images/JKQTPHorizontalRange_small.png new file mode 100644 index 0000000000..a79cfe28ba Binary files /dev/null and b/doc/images/JKQTPHorizontalRange_small.png differ diff --git a/doc/images/JKQTPMathImageBaseModifyNone_small.png b/doc/images/JKQTPMathImageBaseModifyNone_small.png new file mode 100644 index 0000000000..a823ed72b6 Binary files /dev/null and b/doc/images/JKQTPMathImageBaseModifyNone_small.png differ diff --git a/doc/images/JKQTPPeakStreamGraphY.png b/doc/images/JKQTPPeakStreamGraphY.png index 121ce52d88..e00b184d26 100644 Binary files a/doc/images/JKQTPPeakStreamGraphY.png and b/doc/images/JKQTPPeakStreamGraphY.png differ diff --git a/doc/images/JKQTPPeakStreamGraphY_small.png b/doc/images/JKQTPPeakStreamGraphY_small.png new file mode 100644 index 0000000000..7376d67092 Binary files /dev/null and b/doc/images/JKQTPPeakStreamGraphY_small.png differ diff --git a/doc/images/JKQTPVerticalRange.png b/doc/images/JKQTPVerticalRange.png new file mode 100644 index 0000000000..25381bb37c Binary files /dev/null and b/doc/images/JKQTPVerticalRange.png differ diff --git a/doc/images/JKQTPVerticalRange_small.png b/doc/images/JKQTPVerticalRange_small.png new file mode 100644 index 0000000000..d9ee09d333 Binary files /dev/null and b/doc/images/JKQTPVerticalRange_small.png differ diff --git a/doc/images/JKQTPbarHorizontalGraphStacked.png b/doc/images/JKQTPbarHorizontalGraphStacked.png index 538fcfa247..872c967cad 100644 Binary files a/doc/images/JKQTPbarHorizontalGraphStacked.png and b/doc/images/JKQTPbarHorizontalGraphStacked.png differ diff --git a/doc/images/JKQTPbarVerticalGraphStacked.png b/doc/images/JKQTPbarVerticalGraphStacked.png index b189f05e5e..0f22d7cafd 100644 Binary files a/doc/images/JKQTPbarVerticalGraphStacked.png and b/doc/images/JKQTPbarVerticalGraphStacked.png differ diff --git a/doc/images/JKQTPfilledVerticalRangeGraph.png b/doc/images/JKQTPfilledVerticalRangeGraph.png index 55c20242d4..d87931f4cb 100644 Binary files a/doc/images/JKQTPfilledVerticalRangeGraph.png and b/doc/images/JKQTPfilledVerticalRangeGraph.png differ diff --git a/doc/images/JKQTPfilledVerticalRangeGraph_WithLines.png b/doc/images/JKQTPfilledVerticalRangeGraph_WithLines.png index ed35d14616..0223e23809 100644 Binary files a/doc/images/JKQTPfilledVerticalRangeGraph_WithLines.png and b/doc/images/JKQTPfilledVerticalRangeGraph_WithLines.png differ diff --git a/doc/images/Sicherungskopie_von_jkqtplotter_gridprint.cdt b/doc/images/Sicherungskopie_von_jkqtplotter_gridprint.cdt deleted file mode 100644 index 4fde82c845..0000000000 Binary files a/doc/images/Sicherungskopie_von_jkqtplotter_gridprint.cdt and /dev/null differ diff --git a/doc/images/barchart_error_small.png b/doc/images/barchart_error_small.png new file mode 100644 index 0000000000..d35e120fa9 Binary files /dev/null and b/doc/images/barchart_error_small.png differ diff --git a/doc/images/contextmenu_graphvisibility.gif b/doc/images/contextmenu_graphvisibility.gif new file mode 100644 index 0000000000..09099cb5b6 Binary files /dev/null and b/doc/images/contextmenu_graphvisibility.gif differ diff --git a/doc/images/drag_viewport.gif b/doc/images/drag_viewport.gif new file mode 100644 index 0000000000..74bafab585 Binary files /dev/null and b/doc/images/drag_viewport.gif differ diff --git a/doc/images/draw_circle.gif b/doc/images/draw_circle.gif new file mode 100644 index 0000000000..ea2a7a5b03 Binary files /dev/null and b/doc/images/draw_circle.gif differ diff --git a/doc/images/draw_ellipse.gif b/doc/images/draw_ellipse.gif new file mode 100644 index 0000000000..c3ce4c6d8a Binary files /dev/null and b/doc/images/draw_ellipse.gif differ diff --git a/doc/images/draw_line.gif b/doc/images/draw_line.gif new file mode 100644 index 0000000000..e0d5a33942 Binary files /dev/null and b/doc/images/draw_line.gif differ diff --git a/doc/images/draw_rectangle.gif b/doc/images/draw_rectangle.gif new file mode 100644 index 0000000000..05c81bcc5a Binary files /dev/null and b/doc/images/draw_rectangle.gif differ diff --git a/doc/images/geo_arc_small.png b/doc/images/geo_arc_small.png new file mode 100644 index 0000000000..3fddb6f163 Binary files /dev/null and b/doc/images/geo_arc_small.png differ diff --git a/doc/images/geo_boxplot_small.png b/doc/images/geo_boxplot_small.png new file mode 100644 index 0000000000..fac89e8f70 Binary files /dev/null and b/doc/images/geo_boxplot_small.png differ diff --git a/doc/images/geo_chords_small.png b/doc/images/geo_chords_small.png new file mode 100644 index 0000000000..a9243b031b Binary files /dev/null and b/doc/images/geo_chords_small.png differ diff --git a/doc/images/geo_ellipse_small.png b/doc/images/geo_ellipse_small.png new file mode 100644 index 0000000000..93fa2b194c Binary files /dev/null and b/doc/images/geo_ellipse_small.png differ diff --git a/doc/images/geo_line_small.png b/doc/images/geo_line_small.png new file mode 100644 index 0000000000..9bcd3eaa63 Binary files /dev/null and b/doc/images/geo_line_small.png differ diff --git a/doc/images/geo_pie_small.png b/doc/images/geo_pie_small.png new file mode 100644 index 0000000000..5a9d3f8f66 Binary files /dev/null and b/doc/images/geo_pie_small.png differ diff --git a/doc/images/geo_polygon_small.png b/doc/images/geo_polygon_small.png new file mode 100644 index 0000000000..83ccb486ff Binary files /dev/null and b/doc/images/geo_polygon_small.png differ diff --git a/doc/images/geo_rect_small.png b/doc/images/geo_rect_small.png new file mode 100644 index 0000000000..14c725cc90 Binary files /dev/null and b/doc/images/geo_rect_small.png differ diff --git a/doc/images/geo_text_small.png b/doc/images/geo_text_small.png new file mode 100644 index 0000000000..55dcf39f2f Binary files /dev/null and b/doc/images/geo_text_small.png differ diff --git a/doc/images/impulses_errors_small.png b/doc/images/impulses_errors_small.png new file mode 100644 index 0000000000..3b83480479 Binary files /dev/null and b/doc/images/impulses_errors_small.png differ diff --git a/doc/images/jkqtplotter_simpletest_dateaxes_small.png b/doc/images/jkqtplotter_simpletest_dateaxes_small.png new file mode 100644 index 0000000000..fbb57c3451 Binary files /dev/null and b/doc/images/jkqtplotter_simpletest_dateaxes_small.png differ diff --git a/doc/images/jkqtplotter_sortedx.png b/doc/images/jkqtplotter_sortedx.png index 9932c26060..065e0411d4 100644 Binary files a/doc/images/jkqtplotter_sortedx.png and b/doc/images/jkqtplotter_sortedx.png differ diff --git a/doc/images/jkqtplotter_sortedy.png b/doc/images/jkqtplotter_sortedy.png index d0eab6e54e..cb23b70262 100644 Binary files a/doc/images/jkqtplotter_sortedy.png and b/doc/images/jkqtplotter_sortedy.png differ diff --git a/doc/images/jkqtplotter_unsorted.png b/doc/images/jkqtplotter_unsorted.png index 64ba5e41d2..5c04476b19 100644 Binary files a/doc/images/jkqtplotter_unsorted.png and b/doc/images/jkqtplotter_unsorted.png differ diff --git a/doc/images/jkqtvanishtoolbar.gif b/doc/images/jkqtvanishtoolbar.gif new file mode 100644 index 0000000000..13748405c1 Binary files /dev/null and b/doc/images/jkqtvanishtoolbar.gif differ diff --git a/doc/images/mousepositiondisplay.gif b/doc/images/mousepositiondisplay.gif new file mode 100644 index 0000000000..8b7631bd04 Binary files /dev/null and b/doc/images/mousepositiondisplay.gif differ diff --git a/doc/images/overlayimage.png b/doc/images/overlayimage.png new file mode 100644 index 0000000000..d0caee0fef Binary files /dev/null and b/doc/images/overlayimage.png differ diff --git a/doc/images/overlayimage_small.png b/doc/images/overlayimage_small.png new file mode 100644 index 0000000000..38dd985dda Binary files /dev/null and b/doc/images/overlayimage_small.png differ diff --git a/doc/images/overlayimageenhanced.png b/doc/images/overlayimageenhanced.png new file mode 100644 index 0000000000..f9cc6441a2 Binary files /dev/null and b/doc/images/overlayimageenhanced.png differ diff --git a/doc/images/overlayimageenhanced_small.png b/doc/images/overlayimageenhanced_small.png new file mode 100644 index 0000000000..6d726609ef Binary files /dev/null and b/doc/images/overlayimageenhanced_small.png differ diff --git a/doc/images/rgbimageplots.png b/doc/images/rgbimageplots.png new file mode 100644 index 0000000000..0989f8f44b Binary files /dev/null and b/doc/images/rgbimageplots.png differ diff --git a/doc/images/rgbimageplots_small.png b/doc/images/rgbimageplots_small.png new file mode 100644 index 0000000000..de497d6458 Binary files /dev/null and b/doc/images/rgbimageplots_small.png differ diff --git a/doc/images/zoomin_mouse_contextmenu.gif b/doc/images/zoomin_mouse_contextmenu.gif new file mode 100644 index 0000000000..6f01321ca4 Binary files /dev/null and b/doc/images/zoomin_mouse_contextmenu.gif differ diff --git a/examples/README.md b/examples/README.md index 658e4daa1d..b287c4d524 100644 --- a/examples/README.md +++ b/examples/README.md @@ -7,42 +7,42 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | -| [![](../screenshots/jkqtplotter_simpletest1_small.png)](./simpletest/README.md) | [Very Basic Example (Line Graph)](./simpletest/README.md) | `JKQTPXYLineGraph`
C++-style QVector arrays of data | -| [![](../screenshots/jkqtplotter_simpletest_speed_small.png)](./simpletest_speed) | [Line Graph with Live Data / Speed Test](./simpletest_speed) | `JKQTPXYLineGraph`
external `std::array` data, not owned by datastore
live-data, measure plotting speed
tipps to increas plotting speed | -| [![](../screenshots/jkqtplotter_simpletest_symbols_and_styles_small.png)](./simpletest_symbols_and_styles) | [Line Graph with Different Symbols and Line Styles](./simpletest_symbols_and_styles) | `JKQTPXYLineGraph`
C++ vector of data
setting line styles and symbol styles
automatic graph coloring | -| [![](../screenshots/jkqtplotter_simpletest_stepplots_small.png)](./simpletest_stepplots) | [Step Line Plots in Different Styles](./simpletest_stepplots) | `JKQTPStepHorizontalGraph` (and `JKQTPXYLineGraph`)
C++ vector of data
different step modes, filled and line-only | -| [![](../screenshots/jkqtplotter_simpletest_symbols_and_errors_small.png)](./simpletest_symbols_and_errors) | [Simple Line/Symbol Graph With Errorbars](./simpletest_symbols_and_errors) | `JKQTPXYLineErrorGraph`
C-style arrays of data | -| [![](../screenshots/jkqtplotter_simpletest_errorbarstyles_small.png)](./simpletest_errorbarstyles) | [Different Types of Error Indicators](./simpletest_errorbarstyles) | `JKQTPXYLineErrorGraph`
different styles of error indicators for x- and y-errors
C++-style QVector for data
styling error indicators
moving key and formatting plotter grid | -| [![](../screenshots/jkqtplotter_simpletest_barchart_small.png)](./simpletest_barchart) | [Simple Bar Charts](./simpletest_barchart) | `JKQTPBarVerticalGraph`
C-style arrays of data | -| [![](../screenshots/JKQTPbarHorizontalGraphStacked_small.png)
![](../screenshots/JKQTPbarVerticalGraphStacked_small.png)](./simpletest_stackedbars) | [Stacked Bar Charts](./simpletest_stackedbars) | `JKQTPBarVerticalStackableGraph`, `JKQTPBarHorizontalStackableGraph`
C++-style vectors of data | -| [![](../screenshots/jkqtplotter_simpletest_filledgraphs_small.png)](./simpletest_filledgraphs) | [Filled Curve Plots](./simpletest_filledgraphs) | `JKQTPBarVerticalGraph`
setting/altering data in `JKQTPDatstore` directly
transparent plots
calculating histograms | -| [![](../screenshots/jkqtplotter_simpletest_impulsesplot_small.png)](./simpletest_impulsesplot) | [Impulse Plots](./simpletest_impulsesplot) | `JKQTPImpulsesVerticalGraph` and `JKQTPImpulsesHorizontalGraph`
C++-style QVector as plot data | -| [![](../screenshots/jkqtplotter_simpletest_paramscatterplot_small.png)](./simpletest_paramscatterplot) | [Scatter Graph with Parametrized Symbols/Colors](./simpletest_paramscatterplot) | `JKQTPXYParametrizedScatterGraph`
C++-style QVector as plot data
modify scatter/points/line-graph properties by data | -| [![](../screenshots/jkqtplotter_simpletest_paramscatterplot_image_small.png)](./simpletest_paramscatterplot_image) | [Draw an Artistic Image with a Parametrized Scatter Graph](./simpletest_paramscatterplot_image) | `JKQTPXYParametrizedScatterGraph`
C++-style QVector as plot data
rectangular arrangement of scatters
generative computer graphics | -| [![](../screenshots/jkqtplotter_simpletest_parametriccurve_small.png)](./simpletest_parametriccurve) | [Plotting Parametric Curves](./simpletest_parametriccurve) | `JKQTPXYLineGraph` and `JKQTPXYParametrizedScatterGraph`
C++-style QVector as plot data
parametric curve plotting | -| [![](../screenshots/jkqtplotter_simpletest_functionplot_small.png)](./simpletest_functionplot) | [Plotting Mathematical Functions as Line Graphs](./simpletest_functionplot) | `JKQTPXFunctionLineGraph`
diretly plotting C/C++-functions | -| [![](../screenshots/jkqtplotter_simpletest_parsedfunctionplot_small.png)](./simpletest_parsedfunctionplot) | [Plotting Parsed Mathematical Functions as Line Graphs](./simpletest_parsedfunctionplot) | `JKQTPXParsedFunctionLineGraph`
plotting functions with the internal math equation parser/evaluator | -| [![](../screenshots/jkqtplotter_simpletest_geometric_small.png)](./simpletest_geometric) | [Plotting Geometric Objects](./simpletest_geometric) | | -| [![](../screenshots/jkqtplotter_simpletest_boxplot_small.png)](./simpletest_boxplot) | [Plotting Box Plots](./simpletest_boxplot) | `JKQTPBoxplotVerticalGraph`, `JKQTPBoxplotHorizontalGraph` | +| [![](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`
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`
external `std::array` data, not owned by datastore
live-data, measure plotting speed
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`
C++ vector of data
setting line styles and symbol styles
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) | [Step Line Plots in Different Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_stepplots) | `JKQTPStepHorizontalGraph` (and `JKQTPXYLineGraph`)
C++ vector of data
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`
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`
different styles of error indicators for x- and y-errors
C++-style QVector for data
styling error indicators
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`
C-style arrays of data | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/JKQTPbarHorizontalGraphStacked_small.png)
![](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`
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`
setting/altering data in `JKQTPDatstore` directly
transparent plots
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`
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`
C++-style QVector as plot data
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`
C++-style QVector as plot data
rectangular arrangement of scatters
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`
C++-style QVector as plot data
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`
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`
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` | ## Styling the Plot, Keys, Axes, ... | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | -| [![](../screenshots/jkqtplotter_simpletest_logaxes_small.png)](./simpletest_logaxes) | [logarithmic axes](./simpletest_logaxes) | `JKQTPXYLineGraph` and `JKQTPGeoText`
C++ vector of data
logarithmic axes and styling
plot line styles
internal LaTeX parser
add commenting text to a graph | -| [![](../screenshots/jkqtplotter_simpletest_dateaxes_small.png)
![](../screenshots/jkqtplotter_simpletest_dateaxes_dates_small.png)
![](../screenshots/jkqtplotter_simpletest_dateaxes_timeaxis_small.png)](./simpletest_dateaxes) | [date/time axes](./simpletest_dateaxes) | `JKQTPXYLineGraph` and `JKQTPFilledVerticalRangeGraph`
C++ vector of data
date/time axes
plot min/max range graph
internal LaTeX parser
data from CSV files | +| [![](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`
C++ vector of data
logarithmic axes and styling
plot line styles
internal LaTeX parser
add commenting text to a graph | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_small.png)
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_dates_small.png)
![](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`
C++ vector of data
date/time axes
plot min/max range graph
internal LaTeX parser
data from CSV files | ## Image data Plots | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | -| [![](../screenshots/jkqtplotter_simpletest_rgbimageplot_qt_small.png)](./simpletest_rgbimageplot_qt) | [`QImage` as a Graph](./simpletest_rgbimageplot_qt) | `JKQTPImage`
`QImage` drawn onto a plot with arbitrary scaling) | -| [![](../screenshots/jkqtplotter_simpletest_imageplot_small.png)](./simpletest_imageplot) | [Basic 1-channel Raw C Image Plot](./simpletest_imageplot) | `JKQTPColumnMathImage`
image data copied from C-style row-major array into a single column of the internal datastore
Describes several options of the image plotting classes (different ways of color coding, what to do with data above/below the limits etc.) | -| [![](../screenshots/jkqtplotter_simpletest_imageplot_modifier_small.png)](./simpletest_imageplot_modifier) | [Modifier-Feature of Image Plots](./simpletest_imageplot_modifier) | `JKQTPColumnMathImage`
image data copied from C-style row-major array into a single column of the internal datastore
Image is modified by a second image to display two data dimensions at the same time | -| [![](../screenshots/jkqtplotter_simpletest_imageplot_nodatastore_small.png)](./simpletest_imageplot_nodatastore) | [Basic 1-channel Raw C Image Plot
without the internal datastore](./simpletest_imageplot_nodatastore) | `JKQTPMathImage`
image data in a C-style row-major array, not using internal datastore | -| [![](../screenshots/jkqtplotter_simpletest_imageplot_opencv_small.png)](./simpletest_imageplot_opencv) | [1-channel OpenCV cv::Mat Image Plot](./simpletest_imageplot_opencv) | `JKQTPColumnMathImage`
image data copied from OpenCV cv::Mat-structure into a single column of the internal datastore | -| [![](../screenshots/jkqtplotter_simpletest_rgbimageplot_opencv_small.png)](./simpletest_rgbimageplot_opencv) | [RGB OpenCV cv::Mat Image Plot](./simpletest_rgbimageplot_opencv) | `JKQTPColumnRGBMathImage`
image data copied from OpenCV cv::Mat-structure into three columns of the internal datastore | +| [![](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`
`QImage` drawn onto a plot with arbitrary scaling) | +| [![](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`
image data copied from C-style row-major array into a single column of the internal datastore
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`
image data copied from C-style row-major array into a single column of the internal datastore
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
without the internal datastore](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_nodatastore) | `JKQTPMathImage`
image data in a C-style row-major array, not using internal datastore | +| [![](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`
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`
image data copied from OpenCV cv::Mat-structure into three columns of the internal datastore | @@ -50,8 +50,8 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | -| [![](../screenshots/jkqtplotter_simpletest_ui_small.png)](./simpletest_ui) | [Placing JKQTPlotter into a Qt User-Interface-XML-file (`*.ui`)](./simpletest_ui) | using Qt Form Designer
parsed function plots (`JKQTPXParsedFunctionLineGraph`) | -| [![](../screenshots/jkqtplotter_test_user_interaction_small.png)](./test_user_interaction) | [User Interaction](./test_user_interaction) | different possibilities of user-interaction in JKQtPlotter | +| [![](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
parsed function plots (`JKQTPXParsedFunctionLineGraph`) | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_test_user_interaction_small.png)](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 | @@ -59,7 +59,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | -| [![](../screenshots/test_multiplot_small.png)](./test_multiplot) | [Layouting Several Plots](./test_multiplot) | Combining plots in Qt Layouts
linking plot axes
copy data from a `std::map` int the datastore
print plots/print preview | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot) | [Layouting Several Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot) | Combining plots in Qt Layouts
linking plot axes
copy data from a `std::map` int the datastore
print plots/print preview | @@ -67,8 +67,8 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | -| [![](../screenshots/test_multiplot_small.png)](./test_multiplot) | [Layouting Several Plots](./test_multiplot) | Combining plots in Qt Layouts
linking plot axes
copy data from a `std::map` int the datastore
print plots/print preview | -| [![](../screenshots/test_distributionplot_small.png)](./test_distributionplot) | [Plotting a Statistical Distribution of Data](./test_distributionplot) | Combines several different graphs to draw random values, their distribution and some statistical properties | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot) | [Layouting Several Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot) | Combining plots in Qt Layouts
linking plot axes
copy data from a `std::map` int the datastore
print plots/print preview | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_distributionplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_distributionplot) | [Plotting a Statistical Distribution of Data](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_distributionplot) | Combines several different graphs to draw random values, their distribution and some statistical properties | @@ -76,7 +76,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | -| [![](../screenshots/jkqtmathtext_simpletest_small.png)](./jkqtmathtext_simpletest) | [JKQTMathText: Simple Demonstration](./jkqtmathtext_simpletest) | | -| [![](../screenshots/jkqtmathtext_testapp_small.png)](./jkqtmathtext_test) | [JKQTMathText: Full Testing Application](./jkqtmathtext_test) | | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtmathtext_simpletest_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtmathtext_simpletest) | [JKQTMathText: Simple Demonstration](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtmathtext_simpletest) | | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtmathtext_testapp_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtmathtext_test) | [JKQTMathText: Full Testing Application](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtmathtext_test) | | diff --git a/examples/jkqtmathtext_simpletest/README.md b/examples/jkqtmathtext_simpletest/README.md index d49ddf784a..9c579ea66c 100644 --- a/examples/jkqtmathtext_simpletest/README.md +++ b/examples/jkqtmathtext_simpletest/README.md @@ -2,7 +2,7 @@ JKQTMathText is a hand-written LaTeX-renderer for Qt (implemented in native C++, using Qt). It supports a large set of standard LaTeX markup and can render it to a QPainter. This project (see `./examples/jkqtmathtext_simpletest/`) simply creates a QLabel (as a new window) that displays a rendered LaTeX equation (here the time-dependent Schrödinger equation). -The QMake project looks like this (see [`jkqtmathtext_simpletest.pro`](../jkqtmathtext_simpletest/jkqtmathtext_simpletest.pro): +The QMake project looks like this (see [`jkqtmathtext_simpletest.pro`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtmathtext_simpletest/jkqtmathtext_simpletest.pro): ```.qmake # include JKQTMathText source-code, including the open-source XITS fonts include(../../lib/jkqtmathtext_with_xits.pri) @@ -18,7 +18,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport TARGET = jkqtmathtext_simpletest ``` -And the source code of the main application is (see [`jkqtmathtext_simpletest.cpp`](../jkqtmathtext_simpletest/jkqtmathtext_simpletest.cpp): +And the source code of the main application is (see [`jkqtmathtext_simpletest.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/jkqtmathtext_simpletest/jkqtmathtext_simpletest.cpp): ```.cpp #include #include @@ -63,5 +63,5 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![jkqtmathtext_simpletest](../../screenshots/jkqtmathtext_simpletest.png) +![jkqtmathtext_simpletest](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtmathtext_simpletest.png) diff --git a/examples/jkqtmathtext_test/README.md b/examples/jkqtmathtext_test/README.md index 911b560c2e..75eb60a5ca 100644 --- a/examples/jkqtmathtext_test/README.md +++ b/examples/jkqtmathtext_test/README.md @@ -6,5 +6,5 @@ You can also set several properties of the rendering (fonts, font sizes, anti-al The application looks like this: -![jkqtmathtext_simpletest](../../screenshots/jkqtmathtext_testapp.png) +![jkqtmathtext_simpletest](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtmathtext_testapp.png) diff --git a/examples/simpletest/README.md b/examples/simpletest/README.md index 8e3e9a96fc..dcbcc53f12 100644 --- a/examples/simpletest/README.md +++ b/examples/simpletest/README.md @@ -1,6 +1,6 @@ # Example (JKQTPlotter): Very simple line-graph {#JKQTPlotterSimpleTest} This project (see `./examples/simpletest/`) simply creates a JKQTPlotter widget (as a new window) and adds a single line-graph (a sine-wave). Data is initialized from two QVector objects. -The QMake project looks like this (see [`jkqtplotter_simpletest.pro`](../simpletest/jkqtplotter_simpletest.pro): +The QMake project looks like this (see [`jkqtplotter_simpletest.pro`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest/jkqtplotter_simpletest.pro): ```.qmake # source code for this simple demo SOURCES = jkqtplotter_simpletest.cpp @@ -39,7 +39,7 @@ TARGET = jkqtplotter_simpletest # include JKQTPlotter source code include(../../lib/jkqtplotter.pri) ``` -The source code of the main application is (see [`jkqtplotter_simpletest.cpp`](../simpletest/jkqtplotter_simpletest.cpp): +The source code of the main application is (see [`jkqtplotter_simpletest.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest/jkqtplotter_simpletest.cpp): ```.cpp #include #include "jkqtplotter/jkqtplotter.h" @@ -94,7 +94,7 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![jkqtplotter_simpletest1](../../screenshots/jkqtplotter_simpletest1.png) +![jkqtplotter_simpletest1](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest1.png) diff --git a/examples/simpletest_barchart/README.md b/examples/simpletest_barchart/README.md index 2a1386141f..44a64677aa 100644 --- a/examples/simpletest_barchart/README.md +++ b/examples/simpletest_barchart/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Simple barchart {#JKQTPlotterBarcharts} -This project (see [`simpletest_barchart`](../simpletest_barchart) simply creates a JKQTPlotter widget (as a new window) and adds several barcharts. They are ordered in groups. +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. -The source code of the main application is (see [`jkqtplotter_simpletest_barchart.cpp`](../simpletest_barchart/jkqtplotter_simpletest_barchart.cpp): +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): ```.cpp #include #include "jkqtplotter/jkqtplotter.h" @@ -91,6 +91,6 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![jkqtplotter_simpletest_barchart](../../screenshots/jkqtplotter_simpletest_barchart.png) +![jkqtplotter_simpletest_barchart](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_barchart.png) diff --git a/examples/simpletest_boxplot/README.md b/examples/simpletest_boxplot/README.md index aa09bce95d..e96d2deb34 100644 --- a/examples/simpletest_boxplot/README.md +++ b/examples/simpletest_boxplot/README.md @@ -1,5 +1,5 @@ # Example (JKQTPlotter): Boxplots {#JKQTPlotterBoxplotsGraphs} -This project (see [`simpletest_boxplot`](../simpletest_boxplot) demonstrates how to use JKQTPlotter to draw box plots using the classes `JKQTPBoxplotVerticalGraph` and `JKQTPBoxplotHorizontalGraph`. +This project (see [`simpletest_boxplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_boxplot) demonstrates how to use JKQTPlotter to draw box plots using the classes `JKQTPBoxplotVerticalGraph` and `JKQTPBoxplotHorizontalGraph`. The source code of the main application is (see [`jkqtplotter_simpletest_boxplot.cpp`](jkqtplotter_simpletest_boxplot.cpp). @@ -55,7 +55,7 @@ You can further style the plot by e.g. setting: The result looks like this: -![jkqtplotter_simpletest_boxplot](../../screenshots/jkqtplotter_simpletest_boxplot.png) +![jkqtplotter_simpletest_boxplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_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`: diff --git a/examples/simpletest_dateaxes/README.md b/examples/simpletest_dateaxes/README.md index 0a38dc8377..951fc69b93 100644 --- a/examples/simpletest_dateaxes/README.md +++ b/examples/simpletest_dateaxes/README.md @@ -3,7 +3,7 @@ ## 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. -The source code of the main application can be found in [`jkqtplotter_simpletest_dateaxes.cpp`](../simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.cpp). +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). 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. @@ -106,13 +106,13 @@ Finally the x-axis is formatted to display dates (see [Qt-Documentation of `QDat The result looks like this: -![jkqtplotter_simpletest_symbols_and_styles](../../screenshots/jkqtplotter_simpletest_dateaxes.png) +![jkqtplotter_simpletest_symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes.png) ## Time Axis A second variant (see the example CPP-file) displays data with a time-axis: -![jkqtplotter_simpletest_symbols_and_styles](../../screenshots/jkqtplotter_simpletest_dateaxes_timeaxis.png) +![jkqtplotter_simpletest_symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_timeaxis.png) For that example data-pasring is a bit different, because the file only contains times and no dates: diff --git a/examples/simpletest_errorbarstyles/README.md b/examples/simpletest_errorbarstyles/README.md index 7032d84116..6ff5a9bd93 100644 --- a/examples/simpletest_errorbarstyles/README.md +++ b/examples/simpletest_errorbarstyles/README.md @@ -1,9 +1,9 @@ # 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 objects. -The source code of the main application can be found in [`jkqtplotter_simpletest_errorbarstyles.cpp`](../simpletest_errorbarstyles/jkqtplotter_simpletest_errorbarstyles.cpp). +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). -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](../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/simpletest_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 @@ -104,12 +104,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](../../screenshots/jkqtplotter_simpletest_errorbarstyles.png) +![jkqtplotter_simpletest_errorbarstyles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_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:
![](../../screenshots/jkqtplotter_simpletest_errorbarstyles_barcharts.png) - - `JKQTPImpulsesVerticalGraph` for impulse/candle-stick charts with errors:
![](../../screenshots/jkqtplotter_simpletest_errorbarstyles_impulses.png) - - `JKQTPFilledCurveXErrorGraph` for filled curves with errors:
![](../../screenshots/jkqtplotter_simpletest_errorbarstyles_filledcurves.png) + - `JKQTPBarVerticalErrorGraph` for barcharts with errors:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles_barcharts.png) + - `JKQTPImpulsesVerticalGraph` for impulse/candle-stick charts with errors:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles_impulses.png) + - `JKQTPFilledCurveXErrorGraph` for filled curves with errors:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_errorbarstyles_filledcurves.png) . diff --git a/examples/simpletest_filledgraphs/README.md b/examples/simpletest_filledgraphs/README.md index 21da4473a3..338a7a6190 100644 --- a/examples/simpletest_filledgraphs/README.md +++ b/examples/simpletest_filledgraphs/README.md @@ -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 objects. -The source code of the main application can be found in [`jkqtplotter_simpletest_filledgraphs.cpp`](../simpletest_filledgraphs/jkqtplotter_simpletest_filledgraphs.cpp). +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). 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 @@ -73,11 +73,11 @@ The curves are fille with a semi-transparent color, which is achieved by setting The result looks like this: -![jkqtplotter_simpletest_filledgraphs](../../screenshots/jkqtplotter_simpletest_filledgraphs.png) +![jkqtplotter_simpletest_filledgraphs](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_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](../../screenshots/jkqtplotter_simpletest_filledgraphs_yaxis.png) +![jkqtplotter_simpletest_filledgraphs_yaxis](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_filledgraphs_yaxis.png) diff --git a/examples/simpletest_functionplot/README.md b/examples/simpletest_functionplot/README.md index 4bb9bae958..67020a2a6f 100644 --- a/examples/simpletest_functionplot/README.md +++ b/examples/simpletest_functionplot/README.md @@ -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 [test/simpletest_parsedfunctionplot](../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/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. ## Simple C++ inline function The first example shows how to plot a C++ inline function: @@ -105,15 +105,15 @@ JKQTPXFunctionLineGraph* func7=new JKQTPXFunctionLineGraph(plot); ## Screenshot This code snippets above result in a plot like this: -![jkqtplotter_simpletest_functionplot](../../screenshots/jkqtplotter_simpletest_functionplot.png) +![jkqtplotter_simpletest_functionplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_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](../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/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. 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](../../screenshots/jkqtplotter_simpletest_functionplot_fy.png) +![jkqtplotter_simpletest_functionplot_fy](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_functionplot_fy.png) diff --git a/examples/simpletest_geometric/README.md b/examples/simpletest_geometric/README.md index e30e051230..050c218118 100644 --- a/examples/simpletest_geometric/README.md +++ b/examples/simpletest_geometric/README.md @@ -1,7 +1,7 @@ # 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`](../simpletest_geometric/jkqtplotter_simpletest_geometric.cpp). First a plot is generated and the axis aspect ration 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: +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 ration 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 +67,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](../../screenshots/jkqtplotter_simpletest_geometric.png) +![jkqtplotter_simpletest_geometric](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_geometric.png) diff --git a/examples/simpletest_imageplot/README.md b/examples/simpletest_imageplot/README.md index 6f2d2d6080..f20ae35a38 100644 --- a/examples/simpletest_imageplot/README.md +++ b/examples/simpletest_imageplot/README.md @@ -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. -The source code of the main application is (see [`jkqtplotter_simpletest_imageplot.cpp`](../simpletest_imageplot/jkqtplotter_simpletest_imageplot.cpp): +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): ```.cpp #include #include @@ -111,7 +111,7 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![jkqtplotter_simpletest_imageplot](../../screenshots/jkqtplotter_simpletest_imageplot.png) +![jkqtplotter_simpletest_imageplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_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:
- ![jkqtplotter_simpletest_imageplot__scale02](../../screenshots/jkqtplotter_simpletest_imageplot__scale02.png)
+ ![jkqtplotter_simpletest_imageplot__scale02](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__scale02.png)
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.
- ![jkqtplotter_simpletest_imageplot__smallscalelimitcolor](../../screenshots/jkqtplotter_simpletest_imageplot__smallscalelimitcolor.png)
+ ![jkqtplotter_simpletest_imageplot__smallscalelimitcolor](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__smallscalelimitcolor.png)
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)
- ![jkqtplotter_simpletest_imageplot__smallscalecolor](../../screenshots/jkqtplotter_simpletest_imageplot__smallscalecolor.png) + ![jkqtplotter_simpletest_imageplot__smallscalecolor](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__smallscalecolor.png) - `JKQTPMathImageTransparent`: draw pixels transparent
- ![jkqtplotter_simpletest_imageplot__smallscaletransparent](../../screenshots/jkqtplotter_simpletest_imageplot__smallscaletransparent.png) + ![jkqtplotter_simpletest_imageplot__smallscaletransparent](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot__smallscaletransparent.png) . . diff --git a/examples/simpletest_imageplot_modifier/README.md b/examples/simpletest_imageplot_modifier/README.md index 1df79772e3..16b6774fff 100644 --- a/examples/simpletest_imageplot_modifier/README.md +++ b/examples/simpletest_imageplot_modifier/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Simple math image plot {#JKQTPlotterImagePlotModifier} This project (see `./examples/simpletest_imageplot_modifier/`) creates a JKQTPlotter widget (as a new window) and adds a color-coded image plot of a mathematical function (here `sin(r)`). Then a second image (linearly scaling from 1 in the center to 0 at the borders) is used to modify the first image. The modification can alter several properties of the original image, like its saturation, its transparency (alpha) ... -The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_modifier.cpp`](../simpletest_imageplot_modifier/jkqtplotter_simpletest_imageplot_modifier.cpp): +The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_modifier.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_modifier/jkqtplotter_simpletest_imageplot_modifier.cpp): ```.cpp #include #include @@ -107,24 +107,24 @@ int main(int argc, char* argv[]) } ``` The data image (`sin(r/30)`) on its own looks like this:
-![jkqtplotter_simpletest_imageplot_modifier_imageonly](../../screenshots/jkqtplotter_simpletest_imageplot_modifier_imageonly.png)
+![jkqtplotter_simpletest_imageplot_modifier_imageonly](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_modifier_imageonly.png)
and the modifier image on its own would look like this:
-![jkqtplotter_simpletest_imageplot_modifier_modifieronly](../../screenshots/jkqtplotter_simpletest_imageplot_modifier_modifieronly.png) +![jkqtplotter_simpletest_imageplot_modifier_modifieronly](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_modifier_modifieronly.png) Combined the two form this plot:
-![jkqtplotter_simpletest_imageplot_modifier](../../screenshots/jkqtplotter_simpletest_imageplot_modifier.png) +![jkqtplotter_simpletest_imageplot_modifier](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_modifier.png) There are several modification modes available (see also documentation of JKQTPMathImageBase::ModifierMode): - - no modification `JKQTPMathImageBase::ModifierMode::ModifyNone`:
![](../../doc/images/JKQTPMathImageBaseModifyNone.png) - - modify the VALUE-channel from the HSV color space `JKQTPMathImageBase::ModifierMode::ModifyValue`:
![](../../doc/images/JKQTPMathImageBaseModifyValue.png) - - modify the SATURATION-channel from the HSV color space `JKQTPMathImageBase::ModifierMode::ModifySaturation`:
![](../../doc/images/JKQTPMathImageBaseModifySaturation.png) - - modify the ALPHA/TRANSPARENCY-channel from the RGBA color space `JKQTPMathImageBase::ModifierMode::ModifyAlpha`:
![](../../doc/images/JKQTPMathImageBaseModifyAlpha.png) - - modify the LUMINANCE-channel from the HSL color space `JKQTPMathImageBase::ModifierMode::ModifyLuminance`:
![](../../doc/images/JKQTPMathImageBaseModifyLuminance.png) - - modify the VALUE-channel from the HSV color space `JKQTPMathImageBase::ModifierMode::ModifyHue`:
![](../../doc/images/JKQTPMathImageBaseModifyHue.png) + - no modification `JKQTPMathImageBase::ModifierMode::ModifyNone`:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/JKQTPMathImageBaseModifyNone.png) + - modify the VALUE-channel from the HSV color space `JKQTPMathImageBase::ModifierMode::ModifyValue`:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/JKQTPMathImageBaseModifyValue.png) + - modify the SATURATION-channel from the HSV color space `JKQTPMathImageBase::ModifierMode::ModifySaturation`:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/JKQTPMathImageBaseModifySaturation.png) + - modify the ALPHA/TRANSPARENCY-channel from the RGBA color space `JKQTPMathImageBase::ModifierMode::ModifyAlpha`:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/JKQTPMathImageBaseModifyAlpha.png) + - modify the LUMINANCE-channel from the HSL color space `JKQTPMathImageBase::ModifierMode::ModifyLuminance`:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/JKQTPMathImageBaseModifyLuminance.png) + - modify the VALUE-channel from the HSV color space `JKQTPMathImageBase::ModifierMode::ModifyHue`:
![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/JKQTPMathImageBaseModifyHue.png) -See [`test/simpletest_imageplot`](../simpletest_imageplot) for a detailed description of the other possibilities that the class JKQTPColumnMathImage (and also JKQTPMathImage) offer with respect to determining how an image is plotted. You can combine all options there with the modifier feature described here. +See [`test/simpletest_imageplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot) for a detailed description of the other possibilities that the class JKQTPColumnMathImage (and also JKQTPMathImage) offer with respect to determining how an image is plotted. You can combine all options there with the modifier feature described here. diff --git a/examples/simpletest_imageplot_nodatastore/README.md b/examples/simpletest_imageplot_nodatastore/README.md index e1348533b9..3fe6e520ac 100644 --- a/examples/simpletest_imageplot_nodatastore/README.md +++ b/examples/simpletest_imageplot_nodatastore/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Simple math image plot without use of central JKQTdatastore {#JKQTPlotterImagePlotNoDatastore} This project (see `./examples/simpletest_imageplot_nodatastore/`) 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 given to a JKQTPMathImage to visualize it. The data is stored as a pointer directly in the JKQTPMathImage object. There is also a variant JKQTPColumnMathImage of JKQTPMathImage, which references a column in the internal JKQTdatastore and uses the data there for plotting. In both cases data has to be organized as a row-major matrix of values. JKQTPMathImage supports different dataytpes ([u]nit8/16/32/64,float,double see `JKQTPMathImageBase::DataType`) that can be configured e.g. by `setData()`. -The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_nodatastore.cpp`](../simpletest_imageplot_nodatastore/jkqtplotter_simpletest_imageplot_nodatastore.cpp): +The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_nodatastore.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_nodatastore/jkqtplotter_simpletest_imageplot_nodatastore.cpp): ```.cpp #include #include @@ -103,8 +103,8 @@ int main(int argc, char* argv[]) The result looks like this: -![jkqtplotter_simpletest_imageplot_nodatastore](../../screenshots/jkqtplotter_simpletest_imageplot_nodatastore.png) +![jkqtplotter_simpletest_imageplot_nodatastore](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_nodatastore.png) -See [`test/simpletest_imageplot`](../simpletest_imageplot) for a detailed description of the other possibilities that the class JKQTPColumnMathImage (and also JKQTPMathImage) offer with respect to determining how an image is plottet. +See [`test/simpletest_imageplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot) for a detailed description of the other possibilities that the class JKQTPColumnMathImage (and also JKQTPMathImage) offer with respect to determining how an image is plottet. diff --git a/examples/simpletest_imageplot_opencv/README.md b/examples/simpletest_imageplot_opencv/README.md index c1bbde19bf..ab2f4095bf 100644 --- a/examples/simpletest_imageplot_opencv/README.md +++ b/examples/simpletest_imageplot_opencv/README.md @@ -4,7 +4,7 @@ To copy the data a special OpenCV Interface function `JKQTPCopyCvMatToColumn()` The function `JKQTPCopyCvMatToColumn()` is available from the (non-default) header-only extension from `jkqtplotter/jkqtpopencvinterface.h`. This header provides facilities to interface JKQTPlotter with OPenCV. -The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_opencv.cpp`](../simpletest_imageplot_opencv/jkqtplotter_simpletest_imageplot_opencv.cpp): +The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_opencv.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_opencv/jkqtplotter_simpletest_imageplot_opencv.cpp): ```.cpp #include #include @@ -117,7 +117,7 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![jkqtplotter_simpletest_imageplot](../../screenshots/jkqtplotter_simpletest_imageplot_opencv.png) +![jkqtplotter_simpletest_imageplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_imageplot_opencv.png) -See [`test/simpletest_imageplot`](../simpletest_imageplot) for a detailed description of the other possibilities that the class JKQTPColumnMathImage (and also JKQTPMathImage) offer with respect to determining how an image is plottet. +See [`test/simpletest_imageplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot) for a detailed description of the other possibilities that the class JKQTPColumnMathImage (and also JKQTPMathImage) offer with respect to determining how an image is plottet. diff --git a/examples/simpletest_impulsesplot/README.md b/examples/simpletest_impulsesplot/README.md index cb819fb11c..e73ac5c18c 100644 --- a/examples/simpletest_impulsesplot/README.md +++ b/examples/simpletest_impulsesplot/README.md @@ -1,6 +1,6 @@ # Example (JKQTPlotter): Simple impulse plots {#JKQTPlotterImpulsePlots} This project (see `./examples/simpletest_impulsesplot/`) simply creates a JKQTPlotter widget (as a new window) and adds a single impulse graph. -The source code of the main application is (see [`jkqtplotter_simpletest_impulsesplot.cpp`](../simpletest_impulsesplot/jkqtplotter_simpletest_impulsesplot.cpp). +The source code of the main application is (see [`jkqtplotter_simpletest_impulsesplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_impulsesplot/jkqtplotter_simpletest_impulsesplot.cpp). @@ -34,7 +34,7 @@ Now an impulse graph object is generated and added to the plot: The result looks like this: -![jkqtplotter_simpletest_impulsesplot](../../screenshots/jkqtplotter_simpletest_impulsesplot.png) +![jkqtplotter_simpletest_impulsesplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_impulsesplot.png) There is an alternative class `JKQTPImpulsesHorizontalGraph` which draws horizontal impulse plots: ```.cpp @@ -48,6 +48,6 @@ There is an alternative class `JKQTPImpulsesHorizontalGraph` which draws horizon This code snippet results in a plot like this: -![jkqtplotter_simpletest_impulsesplot](../../screenshots/jkqtplotter_simpletest_impulsesplot_horizontal.png) +![jkqtplotter_simpletest_impulsesplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_impulsesplot_horizontal.png) diff --git a/examples/simpletest_logaxes/README.md b/examples/simpletest_logaxes/README.md index 2f652c3c1b..064237b4d3 100644 --- a/examples/simpletest_logaxes/README.md +++ b/examples/simpletest_logaxes/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Line Graph with Logarithmic y-axis {#JKQTPlotterLogAxes} This project (see `./examples/simpletest_logaxes/`) simply creates a JKQTPlotter widget (as a new window) and several line-graphs of different resonance curves. -The source code of the main application can be found in [`jkqtplotter_simpletest_logaxes.cpp`](../simpletest_logaxes/jkqtplotter_simpletest_logaxes.cpp). Mainly several graphs are generated in a loop and then different line styles are applied to the graphs (set by ``graph->setStyle()`). The colors are set automtically from an internal default palette. The main loop looks like this: +The source code of the main application can be found in [`jkqtplotter_simpletest_logaxes.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_logaxes/jkqtplotter_simpletest_logaxes.cpp). Mainly several graphs are generated in a loop and then different line styles are applied to the graphs (set by ``graph->setStyle()`). The colors are set automtically from an internal default palette. The main loop looks like this: ```.cpp QVector pens {Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine, Qt::DashDotDotLine }; @@ -47,8 +47,8 @@ Then a `JKQTPGeoText` is added to the graph, which shows the function plotted in plot.addGraph(new JKQTPGeoText(&plot, 1.25, 10, "$\\frac{A}{A_{stat}}=\\frac{1}{\\sqrt{\\left(1-\\eta^2\\right)^2+\\left(2{\\eta}D\\right)^2}}$", 15)); ``` The difference between not using and using `$...$` for the equation can be seen here: -- no $-math-mode: ![](../../screenshots/jkqtplotter_simpletest_logaxes_lowqmathrendering.png) -- using $-math-mode: ![](../../screenshots/jkqtplotter_simpletest_logaxes_highqmathrendering.png) +- no $-math-mode: ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_logaxes_lowqmathrendering.png) +- using $-math-mode: ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_logaxes_highqmathrendering.png) Finally the y-axis is switched to logarithmic scaling and the axis labels are set: ```.cpp @@ -84,23 +84,23 @@ As an alternative `JKQTPCALTexponentCharacter` does not use the power-of-10 nota The result looks like this: -![jkqtplotter_simpletest_logaxes](../../screenshots/jkqtplotter_simpletest_logaxes.png) +![jkqtplotter_simpletest_logaxes](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_logaxes.png) Without the logarithmic scaling we would have: -![jkqtplotter_simpletest_logaxes_nolog](../../screenshots/jkqtplotter_simpletest_logaxes_nolog.png) +![jkqtplotter_simpletest_logaxes_nolog](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_logaxes_nolog.png) Switching the minor grid off results in a plot like this: -![jkqtplotter_simpletest_logaxes_nominorgrid](../../screenshots/jkqtplotter_simpletest_logaxes_nominorgrid.png) +![jkqtplotter_simpletest_logaxes_nominorgrid](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_logaxes_nominorgrid.png) These examples show the results for different typical values for `setMinorTicks()`: -![logaxis_setMinorticks](../../screenshots/logaxis_setMinorticks.png) +![logaxis_setMinorticks](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/logaxis_setMinorticks.png) These examples show the results for different typical values for `setLabelType()`: -![logaxis_setLabelType](../../screenshots/logaxis_setLabelType.png) +![logaxis_setLabelType](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/logaxis_setLabelType.png) diff --git a/examples/simpletest_parametriccurve/README.md b/examples/simpletest_parametriccurve/README.md index b0d47d6168..7dd03c92b8 100644 --- a/examples/simpletest_parametriccurve/README.md +++ b/examples/simpletest_parametriccurve/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Plotting Parametric Curves {#JKQTPlotterParametricCurves} -This project (see `./examples/simpletest_parametriccurve/`) demonstrates how to draw parametric curves, using [`JKQTPXYLineGraph`}(../simpletest) and [`JKQTPXYParametrizedScatterGraph`](../simpletest_paramscatterplot). +This project (see `./examples/simpletest_parametriccurve/`) demonstrates how to draw parametric curves, using [`JKQTPXYLineGraph`}(../simpletest) and [`JKQTPXYParametrizedScatterGraph`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_paramscatterplot). -The source code of the main application can be found in [`jkqtplotter_simpletest_parametriccurve.cpp`](../simpletest_parametriccurve/jkqtplotter_simpletest_parametriccurve.cpp). First, the parametric curve (here a [logarithic spiral](https://en.wikipedia.org/wiki/Logarithmic_spiral)) is sampled into two columns containing the x- and y-values along the curve. In addition the radial distance from x=y=0 is added into a third column: +The source code of the main application can be found in [`jkqtplotter_simpletest_parametriccurve.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parametriccurve/jkqtplotter_simpletest_parametriccurve.cpp). First, the parametric curve (here a [logarithic spiral](https://en.wikipedia.org/wiki/Logarithmic_spiral)) is sampled into two columns containing the x- and y-values along the curve. In addition the radial distance from x=y=0 is added into a third column: ```.cpp QVector X, Y, R; const int Ndata=500; // number of plot points in each curve @@ -49,11 +49,11 @@ If you use `JKQTPXYParametrizedScatterGraph` instead of `JKQTPXYLineGraph`, you The result looks like this: -![jkqtplotter_simpletest_parametriccurve](../../screenshots/jkqtplotter_simpletest_parametriccurve1.png) +![jkqtplotter_simpletest_parametriccurve](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parametriccurve1.png) ... and with the line-color set by the radius: -![jkqtplotter_simpletest_parametriccurve](../../screenshots/jkqtplotter_simpletest_parametriccurve2.png) +![jkqtplotter_simpletest_parametriccurve](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parametriccurve2.png) diff --git a/examples/simpletest_paramscatterplot/README.md b/examples/simpletest_paramscatterplot/README.md index 13b066b598..ea04c7199b 100644 --- a/examples/simpletest_paramscatterplot/README.md +++ b/examples/simpletest_paramscatterplot/README.md @@ -1,13 +1,13 @@ # Example (JKQTPlotter): Scatter Graph with Parametrized Symbols/Colors {#JKQTPlotterParamScatter} -This project (see `./examples/simpletest_paramscatterplot/`) demonstrates the capabilities of `JKQTPXYParametrizedScatterGraph`. This graph class plots symbol&line-graphs, juts like [`JKQTPXYLineGraph`](../simpletest_symbols_and_styles/) and in addition modifies several properties of each plot point by data from an additional column. These properties can be modified: +This project (see `./examples/simpletest_paramscatterplot/`) demonstrates the capabilities of `JKQTPXYParametrizedScatterGraph`. This graph class plots symbol&line-graphs, juts like [`JKQTPXYLineGraph`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_styles/) and in addition modifies several properties of each plot point by data from an additional column. These properties can be modified: - symbol size - symbol type - symbol/line color - line width -The source code of the main application can be found in [`jkqtplotter_simpletest_paramscatterplot.cpp`](../simpletest_paramscatterplot/jkqtplotter_simpletest_paramscatterplot.cpp). First, several datasets are generated and added to the internal datastore. the resulting datatable looks like this: +The source code of the main application can be found in [`jkqtplotter_simpletest_paramscatterplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_paramscatterplot/jkqtplotter_simpletest_paramscatterplot.cpp). First, several datasets are generated and added to the internal datastore. the resulting datatable looks like this: -![jkqtplotter_simpletest_paramscatterplot](../../screenshots/jkqtplotter_simpletest_paramscatterplot_datatable.png) +![jkqtplotter_simpletest_paramscatterplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_datatable.png) Then several plots are added that modify different properties. @@ -106,7 +106,7 @@ Note also that it is possible to combine any of parametrizations above in a sing The full test appication combines all these variants and the result looks like this: -![jkqtplotter_simpletest_paramscatterplot](../../screenshots/jkqtplotter_simpletest_paramscatterplot.png) +![jkqtplotter_simpletest_paramscatterplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot.png) diff --git a/examples/simpletest_paramscatterplot_image/README.md b/examples/simpletest_paramscatterplot_image/README.md index 149e2c07fe..61d7f09007 100644 --- a/examples/simpletest_paramscatterplot_image/README.md +++ b/examples/simpletest_paramscatterplot_image/README.md @@ -1,5 +1,5 @@ # Example (JKQTPlotter): Draw an Artistic Image with a Parametrized Scatter Graph {#JKQTPlotterParamScatterImage} -This project (see `./examples/simpletest_paramscatterplot_image/`) demonstrates the capabilities of `JKQTPXYParametrizedScatterGraph` to display parametrized scatters in a rectangular arrangement. See the test program in [`test/simpletest_paramscatterplot`](../simpletest_paramscatterplot) for a basic example of the capabilities of `JKQTPXYParametrizedScatterGraph`. +This project (see `./examples/simpletest_paramscatterplot_image/`) demonstrates the capabilities of `JKQTPXYParametrizedScatterGraph` to display parametrized scatters in a rectangular arrangement. See the test program in [`test/simpletest_paramscatterplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_paramscatterplot) for a basic example of the capabilities of `JKQTPXYParametrizedScatterGraph`. In this example, we load an image, convert it to greyscale and store it, together with x/y-coordinate-vectors in the datastore. Then a `JKQTPXYParametrizedScatterGraph` is used to draw the image as a pointilistic artwork, where each pixel is represented by a disk. The color of the disk is chosen from a color-palette, based on the grey-value. The size of each disk is chosen from the inverse grey value. @@ -75,20 +75,20 @@ Finally the plot is styled and the axis aspect ratios are fixed: The full test appication combines all these variants and the result looks like this: -![jkqtplotter_simpletest_paramscatterplot_image](../../screenshots/jkqtplotter_simpletest_paramscatterplot_image.png) +![jkqtplotter_simpletest_paramscatterplot_image](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_image.png) You can modify the example above in several ways, e.g. by choosing another symbol (e.g. a star): -![jkqtplotter_simpletest_paramscatterplot_image_star](../../screenshots/jkqtplotter_simpletest_paramscatterplot_image_star.png) +![jkqtplotter_simpletest_paramscatterplot_image_star](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_image_star.png) ... or by changing the color palette and the symbol: -![jkqtplotter_simpletest_paramscatterplot_image_palette](../../screenshots/jkqtplotter_simpletest_paramscatterplot_image_palette.png) +![jkqtplotter_simpletest_paramscatterplot_image_palette](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_image_palette.png) -![jkqtplotter_simpletest_paramscatterplot_image_palette_triangle](../../screenshots/jkqtplotter_simpletest_paramscatterplot_image_palette_triangle.png) +![jkqtplotter_simpletest_paramscatterplot_image_palette_triangle](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_image_palette_triangle.png) ... or even to set a different symbol for each pixel, based on the values in `columnS` (simply add `graph1->setSymbolColumn(columnS)`): -![jkqtplotter_simpletest_paramscatterplot_image_varsymbol](../../screenshots/jkqtplotter_simpletest_paramscatterplot_image_varsymbol.png) +![jkqtplotter_simpletest_paramscatterplot_image_varsymbol](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_paramscatterplot_image_varsymbol.png) diff --git a/examples/simpletest_parsedfunctionplot/README.md b/examples/simpletest_parsedfunctionplot/README.md index 726594b34e..90c0782976 100644 --- a/examples/simpletest_parsedfunctionplot/README.md +++ b/examples/simpletest_parsedfunctionplot/README.md @@ -2,7 +2,7 @@ ## Plot Function f(x) This project (see `./examples/simpletest_parsedfunctionplot/`) demonstrates how to plot mathematical functions as line graphs. The functions are defined as strings that will be evaluated with the equation parser, integrated into JKQTPlotter. -Note: See the example [Plotting Mathematical Functions as Line Graphs](../simpletest_functionplot) if you don't want to draw parsed functions, but want to provide a C function, or C++ functor! +Note: See the example [Plotting Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_functionplot) if you don't want to draw parsed functions, but want to provide a C function, or C++ functor! Adding an evaluated funtion to a graph is very simple: ```.cpp @@ -12,7 +12,7 @@ Adding an evaluated funtion to a graph is very simple: ``` As you can see a graph of the type `JKQTPXParsedFunctionLineGraph` is used, which plots a function that depends on the variable `x`. The given function is parsed and evaluated (see [`lib/jkqtplottertools/jkqtpmathparser.h`](https://github.com/jkriege2/JKQTPlotter/blob/master/lib/jkqtplottertools/jkqtpmathparser.h) for details on the features of the math parser). An intelligent drawing algorithm chooses the number of control points for drawing a smooth graph, with sufficient amount of details, by evaluating locally the slope of the function. -In the example in [`test/simpletest_parsedfunctionplot/simpletest_parsedfunctionplot.cpp`](../simpletest_parsedfunctionplot/simpletest_parsedfunctionplot.cpp) we do not simply set a fixed function, but add a `QLineEdit` which allows to edit the function and redraws it, once ENTER is pressed: +In the example in [`test/simpletest_parsedfunctionplot/simpletest_parsedfunctionplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_parsedfunctionplot/simpletest_parsedfunctionplot.cpp) we do not simply set a fixed function, but add a `QLineEdit` which allows to edit the function and redraws it, once ENTER is pressed: ```.cpp JKQTPlotter* plot=new JKQTPlotter(&mainWin); QLineEdit* edit=new QLineEdit(&mainWin); @@ -42,10 +42,10 @@ In the example in [`test/simpletest_parsedfunctionplot/simpletest_parsedfunction This code snippet results in a plot like this: -![jkqtplotter_simpletest_parsedfunctionplot](../../screenshots/jkqtplotter_simpletest_parsedfunctionplot.png) +![jkqtplotter_simpletest_parsedfunctionplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parsedfunctionplot.png) ## Plotting with parameters -As shown in [Plotting Mathematical Functions as Line Graphs](../simpletest_functionplot) you can also use externally set parameters in a plot function. These parameters can be double numbers and may be set with either as an internal parameter vector, or may be read from a parameter column (as shown in the [linked example](../simpletest_functionplot)). These parameters are available as variables `p1`, `p2`, ... in the function string. Here is a small example: +As shown in [Plotting Mathematical Functions as Line Graphs](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_functionplot) you can also use externally set parameters in a plot function. These parameters can be double numbers and may be set with either as an internal parameter vector, or may be read from a parameter column (as shown in the [linked example](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_functionplot)). These parameters are available as variables `p1`, `p2`, ... in the function string. Here is a small example: ```.cpp JKQTPXParsedFunctionLineGraph* parsedFunc=new JKQTPXParsedFunctionLineGraph(plot); @@ -57,16 +57,16 @@ As shown in [Plotting Mathematical Functions as Line Graphs](../simpletest_funct ## Plot Function f(y) If you use the graph class `JKQTPYParsedFunctionLineGraph` instead of `JKQTPXParsedFunctionLineGraph`, you can plot functions `x=f(y)` (instead of `y=f(x)`). The function from the example above will then ahve to be changed to `sin(y*8)*exp(-y/4)` and the result will look like this: -![jkqtplotter_simpletest_parsedfunctionplot_fy](../../screenshots/jkqtplotter_simpletest_parsedfunctionplot_fy.png) +![jkqtplotter_simpletest_parsedfunctionplot_fy](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parsedfunctionplot_fy.png) ## Properties of the Adaptive Plotting Algorithm The adaptive capabilities of the rendering algorithm can be seen, when plotting e.g. `2/x`, which is drawn smoothely, even around the undefined value at `x=0`: -![jkqtplotter_simpletest_parsedfunctionplot_2overx.png](../../screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx.png) +![jkqtplotter_simpletest_parsedfunctionplot_2overx.png](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx.png) With an additional checkbox in this example, you can switch drawing the actual sample points of the drawing algorithm on and off, by calling `parsedFunc->setDisplaySamplePoints(...)`. This can be used to debug the drawing algorithm and explore its parameters (which you can set with `setMinSamples()`, `setMaxRefinementDegree()`, `setSlopeTolerance()`, `setMinPixelPerSample()`). Here is an example of a 2/x function with shown sample points: -![jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png](../../screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png) +![jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png) diff --git a/examples/simpletest_rgbimageplot_opencv/README.md b/examples/simpletest_rgbimageplot_opencv/README.md index 7fad249b80..d6fb8f0087 100644 --- a/examples/simpletest_rgbimageplot_opencv/README.md +++ b/examples/simpletest_rgbimageplot_opencv/README.md @@ -4,7 +4,7 @@ To copy the data a special OpenCV Interface function `JKQTPCopyCvMatToColumn()` The function `JKQTPCopyCvMatToColumn()` is available from the (non-default) header-only extension from `jkqtplotter/jkqtpopencvinterface.h`. This header provides facilities to interface JKQTPlotter with OPenCV. -The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_opencv.cpp`](../simpletest_imageplot_opencv/jkqtplotter_simpletest_imageplot_opencv.cpp): +The source code of the main application is (see [`jkqtplotter_simpletest_imageplot_opencv.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_imageplot_opencv/jkqtplotter_simpletest_imageplot_opencv.cpp): ```.cpp #include #include @@ -95,7 +95,7 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![jkqtplotter_simpletest_imageplot](../../screenshots/jkqtplotter_simpletest_rgbimageplot_opencv.png) +![jkqtplotter_simpletest_imageplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_rgbimageplot_opencv.png) The image is upside-down, because computer images use a coordinate system with 0 at the top-left (left-handed coordinate system) and the JKQTPlotter has its 0 at the bottom-left (right-handed coordinate system). diff --git a/examples/simpletest_rgbimageplot_qt/README.md b/examples/simpletest_rgbimageplot_qt/README.md index a78698af5d..58bee82897 100644 --- a/examples/simpletest_rgbimageplot_qt/README.md +++ b/examples/simpletest_rgbimageplot_qt/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): QImage as a Graph {#JKQTPlotterImagePlotQImageRGB} This project (see `./examples/simpletest_rgbimageplot_qt/`) simply creates a JKQTPlotter widget (as a new window) and adds an image plot with an image taken from a [QImage](http://doc.qt.io/qt-5/qimage.html) object. -The source code of the main application is (see [`jkqtplotter_simpletest_rgbimageplot_qt.cpp`](../simpletest_rgbimageplot_qt/jkqtplotter_simpletest_rgbimageplot_qt.cpp). the main parts are: +The source code of the main application is (see [`jkqtplotter_simpletest_rgbimageplot_qt.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_rgbimageplot_qt/jkqtplotter_simpletest_rgbimageplot_qt.cpp). the main parts are: ```.cpp // 2. now we open a BMP-file and load it into an OpenCV cv::Mat QImage image(":/example.bmp"); @@ -25,7 +25,7 @@ The source code of the main application is (see [`jkqtplotter_simpletest_rgbimag ``` The result looks like this: -![jkqtplotter_simpletest_imageplot](../../screenshots/jkqtplotter_simpletest_rgbimageplot_qt.png) +![jkqtplotter_simpletest_imageplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_rgbimageplot_qt.png) diff --git a/examples/simpletest_speed/README.md b/examples/simpletest_speed/README.md index 11caaa8e42..5af9bd0822 100644 --- a/examples/simpletest_speed/README.md +++ b/examples/simpletest_speed/README.md @@ -51,7 +51,7 @@ void SpeedTestPlot::plotNewData() The result looks like this: -![jkqtplotter_simpletest_speed1](../../screenshots/jkqtplotter_simpletest_speed.png) +![jkqtplotter_simpletest_speed1](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_speed.png) There are different facor affecting the replot speed: 1. *Anti-Aliasing:* If `JKQTPlotter` uses Anti-Aliasing for plotting, the plots are much nicer, but also about a factor of 3-4 slower. This is due to the increased amount of calculations, necessary in the drawing sub-system of Qt. @@ -61,7 +61,7 @@ There are different facor affecting the replot speed: plot.getPlotter()->setUseAntiAliasingForSystem(false); plot.getPlotter()->setUseAntiAliasingForText(false); ``` -2. *Number of Graphs:* The number of plots (and also ther type and complexity) is a major imapct factor in the plotting speed. You can switch off a plot with the context menu:
![contextmenu_graph_visibility](../../screenshots/contextmenu_graph_visibility.png) +2. *Number of Graphs:* The number of plots (and also ther type and complexity) is a major imapct factor in the plotting speed. You can switch off a plot with the context menu:
![contextmenu_graph_visibility](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/contextmenu_graph_visibility.png) 3. *Axis Scales and Plot Appearance:* Replotting is done in two steps: First the plot with the axes, labels etc. is drawn. Then the graphs are draw on top. Therefore a replot is faster, if only the graphs change, because the background (plot) does not have to be replotted. diff --git a/examples/simpletest_stackedbars/README.md b/examples/simpletest_stackedbars/README.md index a5f4fd31f1..532c30821d 100644 --- a/examples/simpletest_stackedbars/README.md +++ b/examples/simpletest_stackedbars/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Simple stacked barchart {#JKQTPlotterStackedBarChart} This project (see `./examples/simpletest_stackedbars/`) simply creates a JKQTPlotter widget (as a new window) and adds several stacked barcharts. -The source code of the main application is (see [`jkqtplotter_simpletest_stackedbars.cpp`](../simpletest_stackedbars/jkqtplotter_simpletest_stackedbars.cpp): +The source code of the main application is (see [`jkqtplotter_simpletest_stackedbars.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_stackedbars/jkqtplotter_simpletest_stackedbars.cpp): ```.cpp #include #include "jkqtplotter/jkqtplotter.h" @@ -104,8 +104,8 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![JKQTPBarVerticalGraphStacked](https://raw.githubusercontent.com/jkriege2/JKQTPlotter/master/doc/images/JKQTPBarVerticalGraphStacked.png) +![JKQTPBarVerticalGraphStacked](https://raw.githubusercontent.com/jkriege2/JKQTPlotter/master/doc/images/JKQTPbarVerticalGraphStacked.png) If you use `JKQTPBarHorizontalGraphStacked` instead of `JKQTPBarVerticalStackableGraph`, you'll get a result like this: -![JKQTPBarHorizontalGraphStacked](https://raw.githubusercontent.com/jkriege2/JKQTPlotter/master/doc/images/JKQTPBarHorizontalGraphStacked.png) +![JKQTPBarHorizontalGraphStacked](https://raw.githubusercontent.com/jkriege2/JKQTPlotter/master/doc/images/JKQTPbarHorizontalGraphStacked.png) diff --git a/examples/simpletest_stepplots/README.md b/examples/simpletest_stepplots/README.md index 9bee6c58b4..4c691fc9b2 100644 --- a/examples/simpletest_stepplots/README.md +++ b/examples/simpletest_stepplots/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Step Line Plots in Different Styles {#JKQTPlotterStepPlot} This project (see `./examples/simpletest_stepplots/`) simply creates a JKQTPlotter widget (as a new window) and adds a single line-graph (a sine-wave). Data is initialized from two QVector objects. -The source code of the main application can be found in [`jkqtplotter_simpletest_stepplots.cpp`](../simpletest_stepplots/jkqtplotter_simpletest_stepplots.cpp). For the most part, several datasets of cosine-curves are generated. then thrre tuples of graphs are added: One of type `JKQTPXYLineGraph`, which simply indicates the location of the actual datapoints. the second is of type `JKQTPStepHorizontalGraph`, which adds the step-graph to the plot: +The source code of the main application can be found in [`jkqtplotter_simpletest_stepplots.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_stepplots/jkqtplotter_simpletest_stepplots.cpp). For the most part, several datasets of cosine-curves are generated. then thrre tuples of graphs are added: One of type `JKQTPXYLineGraph`, which simply indicates the location of the actual datapoints. the second is of type `JKQTPStepHorizontalGraph`, which adds the step-graph to the plot: ```.cpp // 3 now we make several plots with different step styles, each one also contains a @@ -47,7 +47,7 @@ In addition to the symbol type and line style, you can also alter the size of th The result looks like this: -![jkqtplotter_simpletest_stepplots](../../screenshots/jkqtplotter_simpletest_stepplots.png) +![jkqtplotter_simpletest_stepplots](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_stepplots.png) diff --git a/examples/simpletest_symbols_and_errors/README.md b/examples/simpletest_symbols_and_errors/README.md index f3cb18b78b..ba2936fcfa 100644 --- a/examples/simpletest_symbols_and_errors/README.md +++ b/examples/simpletest_symbols_and_errors/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Simple line-graph with error bars {#JKQTPlotterSymbolsErrors} This project (see `./examples/simpletest_symbols_and_errors/`) simply creates a JKQTPlotter widget (as a new window) and adds a single line-graph (a sine-wave) that has y-errorbars. In addition, this example shows how to change some of the axis properties and how to use LaTeX markup to format axis labels (can actually be used for all labels in JKQTPlotter). Also, in comparison to the last example, here we initialize the data from C-type arrays (double*), instead of QVector objects. -The source code of the main application is (see [`jkqtplotter_simpletest_symbols_and_errors.cpp`](../simpletest_symbols_and_errors/jkqtplotter_simpletest_symbols_and_errors.cpp): +The source code of the main application is (see [`jkqtplotter_simpletest_symbols_and_errors.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_errors/jkqtplotter_simpletest_symbols_and_errors.cpp): ```.cpp #include #include "jkqtplotter/jkqtplotter.h" @@ -72,6 +72,6 @@ int main(int argc, char* argv[]) ``` The result looks like this: -![jkqtplotter_simpletest_symbols_and_errors](../../screenshots/jkqtplotter_simpletest_symbols_and_errors.png) +![jkqtplotter_simpletest_symbols_and_errors](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_symbols_and_errors.png) diff --git a/examples/simpletest_symbols_and_styles/README.md b/examples/simpletest_symbols_and_styles/README.md index 8dfd480610..387da6046f 100644 --- a/examples/simpletest_symbols_and_styles/README.md +++ b/examples/simpletest_symbols_and_styles/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Line Graph with Different Symbols and Line Styles {#JKQTPlotterSymbolsAndStyles} This project (see `./examples/simpletest_symbols_and_styles/`) simply creates a JKQTPlotter widget (as a new window) and adds a single line-graph (a sine-wave). Data is initialized from two QVector objects. -The source code of the main application can be found in [`jkqtplotter_simpletest_symbols_and_styles.cpp`](../simpletest_symbols_and_styles/jkqtplotter_simpletest_symbols_and_styles.cpp). Mainly several graphs are generated in a loop and then different symbol and line styles are applied to the graph (set by `graph->setSymbol()` for the symbol and `graph->setStyle()` for the line style). The colors are set automtically from an internal default palette. The main loop looks like this: +The source code of the main application can be found in [`jkqtplotter_simpletest_symbols_and_styles.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_symbols_and_styles/jkqtplotter_simpletest_symbols_and_styles.cpp). Mainly several graphs are generated in a loop and then different symbol and line styles are applied to the graph (set by `graph->setSymbol()` for the symbol and `graph->setStyle()` for the line style). The colors are set automtically from an internal default palette. The main loop looks like this: ```.cpp QVector pens {Qt::NoPen, Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine, Qt::DashDotDotLine }; @@ -44,7 +44,7 @@ In addition to the symbol type and line style, you can also alter the size of th The result looks like this: -![jkqtplotter_simpletest_symbols_and_styles](../../screenshots/jkqtplotter_simpletest_symbols_and_styles.png) +![jkqtplotter_simpletest_symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_symbols_and_styles.png) diff --git a/examples/simpletest_ui/README.md b/examples/simpletest_ui/README.md index 7cab63370f..89dbb7b240 100644 --- a/examples/simpletest_ui/README.md +++ b/examples/simpletest_ui/README.md @@ -18,7 +18,7 @@ For this to work you have to follow the steps shown below: ## QMake-Project of this example -The QMake project for such a project looks like this (see [`jkqtplotter_simpletest_ui.pro`](../simpletest_ui/jkqtplotter_simpletest_ui.pro): +The QMake project for such a project looks like this (see [`jkqtplotter_simpletest_ui.pro`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_ui/jkqtplotter_simpletest_ui.pro): ```.qmake # source code for this simple demo SOURCES = jkqtplotter_simpletest_ui.cpp \ @@ -77,7 +77,7 @@ int main(int argc, char* argv[]) The Form was designed in the Qt Form Designer within Qt Creator, using the method described above (see `formwithjkqtplotter.ui`): -![jkqtplotter_simpletest_ui1](../../screenshots/jkqtplotter_simpletest_ui_widget.png) +![jkqtplotter_simpletest_ui1](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_ui_widget.png) In addition the example implements some simple functionality in the `formwithjkqtplotter.cpp/.h`-files. A single graph, which parses and plots a function (from a `QLineEdit`) is added to the plot in the constructor: ```.cpp @@ -133,11 +133,11 @@ void FormWithJKQTPlotter::on_btnReplot_clicked() The result looks like this: -![jkqtplotter_simpletest_ui1](../../screenshots/jkqtplotter_simpletest_ui.png) +![jkqtplotter_simpletest_ui1](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_ui.png) If you set both axes to logarithmic and modify the plotted function a bit, you get: -![jkqtplotter_simpletest_ui1](../../screenshots/jkqtplotter_simpletest_ui_loglog.png) +![jkqtplotter_simpletest_ui1](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_ui_loglog.png) diff --git a/examples/test_distributionplot/README.md b/examples/test_distributionplot/README.md index 86b29e3f12..f4e05be47a 100644 --- a/examples/test_distributionplot/README.md +++ b/examples/test_distributionplot/README.md @@ -1,5 +1,5 @@ # Example (JKQTPlotter): Plotting a Statistical Distribution of Data {#JKQTPlotterDistributionPlot} -This project (see [`test_distributionplot`](../test_distributionplot) demonstrates how to combine several different graphs and geometric elements to show a set of random values and their statistics. +This project (see [`test_distributionplot`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_distributionplot) demonstrates how to combine several different graphs and geometric elements to show a set of random values and their statistics. The source code of the main application is (see [`test_distributionplot.cpp`](test_distributionplot.cpp). @@ -132,4 +132,4 @@ After adding all necessary data to the JKQTDatastore: The result looks like this: -![test_distributionplot](../../screenshots/test_distributionplot.png) +![test_distributionplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_distributionplot.png) diff --git a/examples/test_multiplot/README.md b/examples/test_multiplot/README.md index 0d67b01037..a6deaf4131 100644 --- a/examples/test_multiplot/README.md +++ b/examples/test_multiplot/README.md @@ -1,7 +1,7 @@ # Example (JKQTPlotter): Laying out Several Plots {#JKQTPlotterMultiPlotLayout} This project (see `./examples/test_multiplot/`) shows how several JKQTPlotter widgets can be combined to in a layout (based on the [Qt layouting system](http://doc.qt.io/qt-5/layout.html)). It also shows how axes in such a layout can be linked to improve user experience. -The source code of the main application can be found in [`test_multiplot.cpp`](../test_multiplot/test_multiplot.cpp). +The source code of the main application can be found in [`test_multiplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot/test_multiplot.cpp). First three plots are generated and put into a [QGridLayout](http://doc.qt.io/qt-5/qgridlayout.html): @@ -55,7 +55,7 @@ Finally: When printing or saving an image of the plots, the plotter will no know In the first line, grid-printing (i.e. the layouted printing of several graphs) is activated. Then the arrangement of the two slave plots `plotResid` and `plotResidHist` is defined as (`x,y`)-shifts with respect to the master plot `plotMain`. -Now some data is generated and several curves are added to the graphs. See [`test_multiplot.cpp`](../test_multiplot/test_multiplot.cpp) for the full source code. +Now some data is generated and several curves are added to the graphs. See [`test_multiplot.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot/test_multiplot.cpp) for the full source code. Finally the axes and plots need a bit of formatting to make them look nicer: @@ -92,15 +92,15 @@ As a last step, the axes are scaled automatically, so the data fills the plots: The result looks like this: -![test_multiplot](../../screenshots/test_multiplot.png) +![test_multiplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot.png) You push the print button (![test_multiplot](https://raw.githubusercontent.com/jkriege2/JKQTPlotter/master/lib/jkqtplotterressources/images/jkqtp_24_print.png)) to open a print preview dialog, which will give an impression of how the three plots will be arranged in a printout: -![test_multiplot](../../screenshots/test_multiplot_printpreview.png) +![test_multiplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot_printpreview.png) In addition this example also contains a Window that allows to control the plot layout and synchronization options: -![test_multiplot](../../screenshots/test_multiplot_controlwindow.png) +![test_multiplot](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot_controlwindow.png) diff --git a/examples/test_user_interaction/README.md b/examples/test_user_interaction/README.md index 3b8564306a..5cbfe19831 100644 --- a/examples/test_user_interaction/README.md +++ b/examples/test_user_interaction/README.md @@ -1,9 +1,30 @@ # Tutorial (JKQTPlotter): User-Interactions in JKQtPlotter {#JKQTPlotterUserInteraction} This project (see `./examples/test_user_interaction/`) demonstrates different types of user-interactions in JKQTPlotter. -The source code of the main application can be found in [`test_user_interaction.cpp`](../test_user_interaction/test_user_interaction.cpp). +The source code of the main application can be found in [`test_user_interaction.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction/test_user_interaction.cpp). +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/contextmenu_graphvisibility.gif) + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/jkqtvanishtoolbar.gif) + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/mousepositiondisplay.gif) + + + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/drag_viewport.gif) + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/zoomin_mouse_contextmenu.gif) + + + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_circle.gif) + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_ellipse.gif) + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_line.gif) + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_rectangle.gif) diff --git a/lib/jkqtplotter/jkqtpbaseplotter.h b/lib/jkqtplotter/jkqtpbaseplotter.h index ec87ffeee4..fbf95d1b33 100644 --- a/lib/jkqtplotter/jkqtpbaseplotter.h +++ b/lib/jkqtplotter/jkqtpbaseplotter.h @@ -56,11 +56,11 @@ class JKQTPGraph; // forward class JKQTPPlotElement; // forward /** \brief initialized Qt-ressources necessary for JKQTBasePlotter - * \ingroup jkqtpplotterclasses */ + * \ingroup jkqtpplotterclasses_tools */ JKQTP_LIB_EXPORT void initJKQTBasePlotterResources(); /** \brief virtual base-class for exporter classes that can be used to save data inot a file - * \ingroup jkqtpplotterclasses */ + * \ingroup jkqtpplotterclasses_tools */ class JKQTP_LIB_EXPORT JKQTPSaveDataAdapter { public: virtual ~JKQTPSaveDataAdapter() ; @@ -70,7 +70,7 @@ class JKQTP_LIB_EXPORT JKQTPSaveDataAdapter { /** \brief Service from this class to implement a special QPaintDevice as a plugin, that can be registered to JKQTBasePlotter/JKQTPlotter * and then be used to export graphics, use registerPaintDeviceAdapter() to register such a plass - * \ingroup jkqtpplotterclasses*/ + * \ingroup jkqtpplotterclasses_tools*/ class JKQTP_LIB_EXPORT JKQTPPaintDeviceAdapter { public: virtual ~JKQTPPaintDeviceAdapter() {} @@ -1211,7 +1211,9 @@ class JKQTP_LIB_EXPORT JKQTBasePlotter: public QObject { int getNextStyle(); - /** \brief represents a pen, when plotting in JKQTPlotter/JKQTBasePlotter */ + /** \brief represents a pen, when plotting in JKQTPlotter/JKQTBasePlotter + * \ingroup jkqtpplotterclasses_tools + */ struct JKQTPPen { QColor m_color; double m_width; @@ -2363,6 +2365,7 @@ class JKQTP_LIB_EXPORT JKQTBasePlotter: public QObject { static bool deregisterSaveDataAdapter(JKQTPSaveDataAdapter* adapter); /** \brief internal tool class for text sizes + * \ingroup jkqtpplotterclasses_tools * \internal */ struct JKQTP_LIB_EXPORT textSizeData { explicit textSizeData(); @@ -2370,6 +2373,7 @@ class JKQTP_LIB_EXPORT JKQTBasePlotter: public QObject { }; /** \brief internal tool class for text-sizess in a plot key + * \ingroup jkqtpplotterclasses_tools * \internal */ struct JKQTP_LIB_EXPORT textSizeKey { explicit textSizeKey(const QFont& f, const QString& text, QPaintDevice *pd); @@ -2392,6 +2396,9 @@ class JKQTP_LIB_EXPORT JKQTBasePlotter: public QObject { }; +/** \brief qHash()-specialization + * \ingroup jkqtpplotterclasses_tools + */ inline uint qHash(const JKQTBasePlotter::textSizeKey& data) { return qHash(data.f.family())+qHash(data.text); } diff --git a/lib/jkqtplotter/jkqtpgraphs.h b/lib/jkqtplotter/jkqtpgraphs.h index c2c4154961..9b2955f4f3 100644 --- a/lib/jkqtplotter/jkqtpgraphs.h +++ b/lib/jkqtplotter/jkqtpgraphs.h @@ -749,6 +749,7 @@ class JKQTP_LIB_EXPORT JKQTPStepVerticalGraph: public JKQTPStepHorizontalGraph { or a range of interest, or the range of good values, ... \ingroup jkqtplotter_diverse + \image html JKQTPHorizontalRange.png */ class JKQTP_LIB_EXPORT JKQTPHorizontalRange: public JKQTPGraph { Q_OBJECT @@ -1114,6 +1115,7 @@ class JKQTP_LIB_EXPORT JKQTPHorizontalRange: public JKQTPGraph { or a range of interest, or the range of good values, ... \ingroup jkqtplotter_diverse + \image html JKQTPVerticalRange.png */ class JKQTP_LIB_EXPORT JKQTPVerticalRange: public JKQTPHorizontalRange { Q_OBJECT diff --git a/lib/jkqtplotter/jkqtpgraphsimage.h b/lib/jkqtplotter/jkqtpgraphsimage.h index 236d50e1a3..c878cac28c 100644 --- a/lib/jkqtplotter/jkqtpgraphsimage.h +++ b/lib/jkqtplotter/jkqtpgraphsimage.h @@ -896,8 +896,9 @@ class JKQTP_LIB_EXPORT JKQTPMathImage: public JKQTPMathImageBase { /*! \brief class to plot an image from an 2-dimensional array of values \ingroup jkqtplotter_imagelots_elements + \image html rgbimageplots.png \image html jkqtplotter_simpletest_rgbimageplot_opencv.png - */ +*/ class JKQTP_LIB_EXPORT JKQTPRGBMathImage: public JKQTPMathImageBase { Q_OBJECT public: @@ -1478,6 +1479,7 @@ class JKQTP_LIB_EXPORT JKQTPColumnMathImage: public JKQTPMathImage { \ingroup jkqtplotter_imagelots_elements + \image html rgbimageplots.png \image html jkqtplotter_simpletest_rgbimageplot_opencv.png */ class JKQTP_LIB_EXPORT JKQTPColumnRGBMathImage: public JKQTPRGBMathImage { @@ -1571,7 +1573,9 @@ class JKQTP_LIB_EXPORT JKQTPColumnRGBMathImage: public JKQTPRGBMathImage { /*! \brief class to plot an image from an 2-dimensional array of boolean values: alle \c true values are plotted in a given color, while the \c false pixels are drawn in another (default: transparent) - \ingroup jkqtplotter_imagelots_elements + \ingroup jkqtplotter_imagelots_overlays + + \image html overlayimage.png */ class JKQTP_LIB_EXPORT JKQTPOverlayImage: public JKQTPImageBase { @@ -1700,11 +1704,12 @@ class JKQTP_LIB_EXPORT JKQTPOverlayImage: public JKQTPImageBase { /*! \brief class to plot an image from an 2-dimensional array of boolean values: alle \c true values are plotted in a given color, while the \c false pixels are drawn in another (default: transparent) - \ingroup jkqtplotter_imagelots_elements + \ingroup jkqtplotter_imagelots_overlays In contrast to JKQTPOverlayImage this class draws ist contents as rectangles, not as semi-transparent image. This may lead to nicer results,but could be slower. Also it is possible to draw other types of markers (cross, circles, ...) + \image html overlayimageenhanced.png */ class JKQTP_LIB_EXPORT JKQTPOverlayImageEnhanced: public JKQTPOverlayImage { Q_OBJECT @@ -1813,10 +1818,12 @@ class JKQTP_LIB_EXPORT JKQTPOverlayImageEnhanced: public JKQTPOverlayImage { /*! \brief class to plot an image from an 2-dimensional array of boolean values: alle \c true values are plotted in a given color, while the \c false pixels are drawn in another (default: transparent) - \ingroup jkqtplotter_imagelots_elements + \ingroup jkqtplotter_imagelots_overlays In contrast to JKQTPOverlayImage this class draws ist contents as rectangles, not as semi-transparent image. This may lead to nicer results,but could be slower. Also it is possible to draw other types of markers (cross, circles, ...) + + \image html overlayimageenhanced.png */ class JKQTP_LIB_EXPORT JKQTPColumnOverlayImageEnhanced: public JKQTPOverlayImageEnhanced { diff --git a/lib/jkqtplotter/jkqtpgraphssinglecolumnsymbols.h b/lib/jkqtplotter/jkqtpgraphssinglecolumnsymbols.h index d04693298c..389de286ef 100644 --- a/lib/jkqtplotter/jkqtpgraphssinglecolumnsymbols.h +++ b/lib/jkqtplotter/jkqtpgraphssinglecolumnsymbols.h @@ -31,7 +31,7 @@ /*! \brief plots a 1-column set of data-values with symbols onto a JKQtPlotter/JKQtBasePlotter. the data from the single column is either interpreted as x- or y-values and the missing coordinate is taken from a fixed value position. - \ingroup jkqtplotter_linesymbolgraphs + \ingroup jkqtplotter_linesymbolgraphs_simple The first coordinate of the data is taken from dataColumn i.e. - the x-values if dataDirection==DataDirection::X diff --git a/lib/jkqtplotter/jkqtplotter.h b/lib/jkqtplotter/jkqtplotter.h index b11a9fbfc8..9e4f53f5a6 100644 --- a/lib/jkqtplotter/jkqtplotter.h +++ b/lib/jkqtplotter/jkqtplotter.h @@ -48,7 +48,7 @@ #define JKQTPLOTTER_H /** \brief initialized Qt-ressources necessary for JKQTPlotter - * \ingroup jkqtpplotterclasses + * \ingroup jkqtpplotterclasses_tools */ JKQTP_LIB_EXPORT void initJKQTPlotterResources(); @@ -106,6 +106,8 @@ JKQTP_LIB_EXPORT void initJKQTPlotterResources(); * * \image html jkqtplotter_defaultcontextmenu.png * + * \image html contextmenu_graphvisibility.gif + * * It allows to: *
    *
  • copy or save the data from the internal JKQTPDatastore
  • @@ -136,11 +138,13 @@ JKQTP_LIB_EXPORT void initJKQTPlotterResources(); * \image html jkqtplotter_toolbar_hidden.png "Hidden Toolbar" * \image html jkqtplotter_toolbar_shown.png "Shown Toolbar" * + * \image html jkqtvanishtoolbar.gif + * * If toolbarAlwaysOn is set to \c true (setToolbarAlwaysOn() ), the toolbar is always displayed: * * \image html jkqtplotter_toolbar_alwayson.png * - * \see displayToolbar, toolbarAlwaysOn, \ref JKQTPlotterUserInteractio + * \see displayToolbar, toolbarAlwaysOn, \ref JKQTPlotterUserInteraction * * * @@ -215,6 +219,13 @@ JKQTP_LIB_EXPORT void initJKQTPlotterResources(); * - setUserActionCompositionMode() specifies how to combine the shape with the existing plot * . * + * \image html zoomin_mouse_contextmenu.gif "Zooming with the mouse" + * + * \image html draw_rectangle.gif "Draw Rectangle User-Action" + * + * \image html drag_viewport.gif "Drag the Plot Viewport" + * + * * \subsubsection JKQTPLOTTER_USERMOUSEINTERACTION_MOUSECLICK Actions After (Double-)Clicks on the Mouse Buttons * The right mouse button has a special role: If it is single-clicked and no JKQTPlotter::MouseActionMode is specified * for the vent, it opens the context menu, unless you call \c setContextMenuMoode(JKQTPlotter::NoContextMenu) . @@ -241,6 +252,8 @@ JKQTP_LIB_EXPORT void initJKQTPlotterResources(); * . * The button to react to is specified as a parameter. * + * \image html contextmenu_graphvisibility.gif + * * \subsubsection JKQTPLOTTER_USERMOUSEINTERACTION_MOUSEWHEEL Actions When a Mouse Wheel Event Occurs * The actions to be performed when the mouse hweel is operated are specified in JKQTPlotter::MouseWheelActions. * You can bind one of these actions to the mouse-wheel (under the condition that a specified Qt::KeyboardModifier @@ -265,7 +278,7 @@ JKQTP_LIB_EXPORT void initJKQTPlotterResources(); * Also the current mouse position is shown above the graph by default (can be switched on or off * using setMousePositionShown() ). * - * + * \image html mousepositiondisplay.gif * * \section JKQTPLOTTER_USEQTCREATOR How to use JKQTPlotter in the Qt Form Designer * @@ -293,15 +306,16 @@ class JKQTP_LIB_EXPORT JKQTPlotter: public QWidget { Q_OBJECT public: /** \brief Availble action this JKQtPlotter can perform when mouse events occur. - * This allows you to e.g. draw rectangles or lines over the plot and receive a signal, when the drawing finishes */ + * This allows you to e.g. draw rectangles or lines over the plot and receive a signal, when the drawing finishes + */ enum MouseDragActions { - PanPlotOnMove=0, /*!< \brief the user can drag the current plot window while keeping the left mouse-button pushed down (=panning), the new widow is applied/displayed whenever the mouse moves */ + PanPlotOnMove=0, /*!< \brief the user can drag the current plot window while keeping the left mouse-button pushed down (=panning), the new widow is applied/displayed whenever the mouse moves \image html drag_viewport.gif "Drag the Plot Viewport" */ PanPlotOnRelease, /*!< \brief the user can drag the current plot window while keeping the left mouse-button pushed down (=panning), the new widow is applied/displayed when the left mouse button is released */ ZoomRectangle, /*!< \brief draw a rectangle and when finish zoom to that rectangle */ - DrawRectangleForEvent, /*!< \brief draw a rectangle and when finished execute the signal userRectangleFinished() */ - DrawCircleForEvent, /*!< \brief draw a circle and when finished execute the signal userCircleFinished() */ - DrawEllipseForEvent, /*!< \brief draw an ellipse and when finished execute the signal userEllipseFinished() */ - DrawLineForEvent, /*!< \brief draw a line and when finished execute the signal userLineFinished() */ + DrawRectangleForEvent, /*!< \brief draw a rectangle and when finished execute the signal userRectangleFinished() \image html draw_rectangle.gif "Draw Rectangle User-Action" */ + DrawCircleForEvent, /*!< \brief draw a circle and when finished execute the signal userCircleFinished() \image html draw_circle.gif "Draw Circle User-Action" */ + DrawEllipseForEvent, /*!< \brief draw an ellipse and when finished execute the signal userEllipseFinished() \image html draw_ellipse.gif "Draw Ellipse User-Action" */ + DrawLineForEvent, /*!< \brief draw a line and when finished execute the signal userLineFinished() \image html draw_line.gif "Draw Lines User-Action" */ ScribbleForEvents, /*!< \brief let the user scribble on the plot (left mouse button is kept pressed) and call userScribbleClick() for each new position */ }; @@ -322,7 +336,7 @@ class JKQTP_LIB_EXPORT JKQTPlotter: public QWidget { /** \brief modes for the context menu */ enum ContextMenuModes { - StandardContextMenu=0, /*!< \brief only show the standard context menu */ + StandardContextMenu=0, /*!< \brief only show the standard context menu \image html zoomin_mouse_contextmenu.gif "Zooming with the mouse" */ SpecialContextMenu, /*!< \brief only show the special context menu \see setSpecialContextMenu() */ StandardAndSpecialContextMenu, /*!< \brief show the standard context menu, with the special context menu incorporated \see setSpecialContextMenu() */ NoContextMenu, /*!< \brief don't show a context menu at all */ @@ -970,6 +984,7 @@ class JKQTP_LIB_EXPORT JKQTPlotter: public QWidget { /** \brief ties a MouseActionMode to a mouse-button and a keyboard-modifier * \internal + * \ingroup jkqtpplotterclasses_tools */ struct JKQTP_LIB_EXPORT MouseDragAction { /** \brief constructs an invalid object */ @@ -1241,7 +1256,7 @@ class JKQTP_LIB_EXPORT JKQTPlotter: public QWidget { /** \brief qHash-variant used by JKQTPlotter * \internal - * \ingroup jkqtpplotterclasses + * \ingroup jkqtpplotterclasses_tools */ template<> inline uint qHash(const QPair &key, uint seed ) noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) { @@ -1250,7 +1265,7 @@ inline uint qHash(const QPair &key, uint s /** \brief qHash-variant used by JKQTPlotter * \internal - * \ingroup jkqtpplotterclasses + * \ingroup jkqtpplotterclasses_tools */ template<> inline uint qHash(const Qt::MouseButton &key, uint /*seed*/ ) noexcept(noexcept(qHash(key))) { @@ -1259,7 +1274,7 @@ inline uint qHash(const Qt::MouseButton &key, uint /*seed*/ ) noexcept(noexcept( /** \brief qHash-variant used by JKQTPlotter * \internal - * \ingroup jkqtpplotterclasses + * \ingroup jkqtpplotterclasses_tools */ template<> inline uint qHash(const Qt::KeyboardModifier &key, uint /*seed*/ ) noexcept(noexcept(qHash(key))) { diff --git a/lib/jkqtplottergui/jkvanishqtoolbar.h b/lib/jkqtplottergui/jkvanishqtoolbar.h index aecb49035f..f151c39659 100644 --- a/lib/jkqtplottergui/jkvanishqtoolbar.h +++ b/lib/jkqtplottergui/jkvanishqtoolbar.h @@ -29,7 +29,11 @@ * \ingroup jkqtptools_qtwidgets * * \image html jkqtplotter_toolbar_hidden.png "Hidden Toolbar" + * * \image html jkqtplotter_toolbar_shown.png "Shown Toolbar" + * + * \image html jkqtvanishtoolbar.gif + * */ class JKQTP_LIB_EXPORT JKVanishQToolBar: public QToolBar { Q_OBJECT diff --git a/screenshots/JKQTPfilledVerticalRangeGraph_WithLines_small.png b/screenshots/JKQTPfilledVerticalRangeGraph_WithLines_small.png new file mode 100644 index 0000000000..548d4536b4 Binary files /dev/null and b/screenshots/JKQTPfilledVerticalRangeGraph_WithLines_small.png differ diff --git a/screenshots/beeswarmplot.png b/screenshots/beeswarmplot.png new file mode 100644 index 0000000000..148a6ecbea Binary files /dev/null and b/screenshots/beeswarmplot.png differ diff --git a/screenshots/beeswarmplot_small.png b/screenshots/beeswarmplot_small.png new file mode 100644 index 0000000000..954b5630f5 Binary files /dev/null and b/screenshots/beeswarmplot_small.png differ diff --git a/screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png b/screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png index 0e309cfef4..dfcb19052b 100644 Binary files a/screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png and b/screenshots/jkqtplotter_simpletest_parsedfunctionplot_2overx_samplepoints.png differ diff --git a/screenshots/plot_filledcurvexerrorplots_small.png b/screenshots/plot_filledcurvexerrorplots_small.png new file mode 100644 index 0000000000..67e75a9d6e Binary files /dev/null and b/screenshots/plot_filledcurvexerrorplots_small.png differ