2020-08-13 21:49:09 +08:00
# JKQTPlotter - A Qt Plotting Library
This is an extensive Qt5 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies.
This software is licensed under the term of the [GNU Lesser General Public License 2.1
(LGPL 2.1)](./LICENSE) or above.
* SourceRepositpry: https://github.com/jkriege2/JKQtPlotter
* Latest Release: https://github.com/jkriege2/JKQtPlotter/releases
* Documentation: https://jkriege2.github.io/JKQtPlotter/index.html
2020-08-14 20:17:24 +08:00
* Examples: [https://jkriege2.github.io/JKQtPlotter/example\_tutorial\_projects.html ](https://jkriege2.github.io/JKQtPlotter/example_tutorial_projects.html )
2020-08-13 21:49:09 +08:00
* Screenshots: https://github.com/jkriege2/JKQtPlotter/tree/master/screenshots

## Main Features
- 2D Plotter widget class (JKQTPlotter)
- high-quality plotting
2020-08-14 20:17:24 +08:00
- no other dependencies than Qt >= 5.0 (tested up until 5.15)
2020-08-13 21:49:09 +08:00
- highly customizable axes/grids (linear/log, date/time, custom ticks ...)
- integrated LaTeX parser (pure C++, no dependencies) to render mathematical equations in axis labels, ticks, ...
- extensive user-interactions pre-programmed (several zooming modes, selecting regions, custom context menus, switch graph visibility, ...)
- full print and export (PDF,PNG,...) support with preview and parametrization out-the-box
- highly customizable look and feel
- supports the Qt layout system for graphs and allows to symchronize several graphs with each other
- centralized data management in an internal datastore:
- data organized by columns, can also represent image data (ropw-major)
- allows to reuse a column in several graphs
- access via Qt's model view framework
- external or internal datasets
- complete with GUI (table view)
- export capabilities (e.g. to CSV, SYLK, ...)
- C++ standard iterator interface
- statistics library (basic statistics, boxplots, histograms, kernel density estimates, regression analysis, polynomial fitting)
- large variety of graphs that can be added to a plot, e.g.:
- scatter-plots (also parametrized color/size/symbol by a third data-column)
- line graphs, step graphs, impulses
- filled curves
- barcharts (also stacked)
- extensive support for different styles of error indicators
- integrated mathematical function parser for function plots (with intelligent rendering algorithm)
- line/scatter graphs can also be based on C/C++ functions instead of data series (C++11 support!)
- statistical plots (e.g. boxplots)
- extensive library of image plots (inclusing different color-scale modes, RGBA-plots, overlays/masks)
- contour plots
- geometric forms/annotations
2020-09-21 19:15:57 +08:00
- can be easily extended by deriving a new graph from JKQTPPlotElement or JKQTPGeometricPlotElement
2020-08-13 21:49:09 +08:00
- optional: OpenCV, CImg interfaces
- CMake-based build system
2020-08-14 20:17:24 +08:00
- extensive set of Examples/Tutorials: [https://jkriege2.github.io/JKQtPlotter/example\_tutorial\_projects.html ](https://jkriege2.github.io/JKQtPlotter/example_tutorial_projects.html )
2020-08-13 21:49:09 +08:00
- extensive doxygen-generated Documentation: http://jkriege2.github.io/JKQtPlotter/index.html
## Building
* Latest Release: [](https://github.com/jkriege2/JKQtPlotter/releases)
2020-08-14 20:17:24 +08:00
JKQTPlotter contains two different build systems: A modern [CMake ](https://cmake.org/ )-based build and an older (and deprecated!) QMake-based build (which works out of the box with Qt 5.x). Both systems are explained in detail in [http://jkriege2.github.io/JKQtPlotter/page\_buildinstructions.html ](http://jkriege2.github.io/JKQtPlotter/page_buildinstructions.html ).
2020-08-13 21:49:09 +08:00
With [CMake ](https://cmake.org/ ) you can easily build JKQTPlotter and all its examples, by calling something like:
```
$ mkdir build; cd build
$ cmake .. -G "< cmake_generator > " "-DCMAKE_PREFIX_PATH=< path_to_your_qt_sources > "
$ cmake --build . --config "Debug"
```
## Screenhhots
### Plotting















### LaTeX-Rendering

## Build-In User-Interaction


