an extensive Qt5 & Qt6 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
Go to file
2022-07-23 13:58:01 +02:00
.github/workflows improved/bugfixed doxygen documentation 2022-04-24 13:23:59 +02:00
cmake Update jkqtplotter_cmake_options.cmake 2022-07-23 08:21:31 +02:00
doc better way to reuse PCH in examples, added CMake-Option to (de)activate PCH-usage 2022-07-22 21:44:16 +02:00
examples better way to reuse PCH in examples, added CMake-Option to (de)activate PCH-usage 2022-07-22 21:44:16 +02:00
lib using Precompiled Headers in QMake 2022-07-23 13:58:01 +02:00
qmake using Precompiled Headers in QMake 2022-07-23 13:58:01 +02:00
screenshots implemented wiggle plots (feature request #68) 2022-05-11 22:55:23 +02:00
.gitignore removed some compiler warnings and fixed construction problems 2022-07-22 16:24:24 +02:00
appveyor.yml tried to improve Appveyor build-script to increase build speed 2022-07-23 12:40:05 +02:00
CMakeLists.txt added homepage and description to CMakeLists.txt 2022-07-19 14:36:48 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-11-21 21:46:40 +01:00
CONTRIBUTING.md Create CONTRIBUTING.md 2022-04-21 15:08:27 +02:00
Doxyfile changed version in Doxyfile 2022-07-22 20:10:55 +02:00
JKQtPlotterAppveyorBuild.pro using Precompiled Headers in QMake 2022-07-23 13:58:01 +02:00
JKQtPlotterBuildAllExamples.pro removed some compiler warnings and fixed construction problems 2022-07-22 16:24:24 +02:00
JKQtPlotterBuildLibsOnly.pro AppVeyor only buolds libs now in QMake-mode (speed-increase + won't spend time in deprecated build-system for broken dependency management in QMake) 2022-07-22 20:01:39 +02:00
LICENSE Initial commit 2015-07-11 12:55:50 +02:00
README.md Added links 2022-07-16 13:06:59 +02:00
readme.txt.in improved documentation 2022-07-19 14:44:12 +02:00
SECURITY.md Create SECURITY.md 2022-04-21 14:56:11 +02:00

JKQTPlotter - A Qt Plotting Library

This is an extensive library of function/data plotter classes for Qt (>= 5.0, tested with Qt up to 5.12).

This software is licensed under the term of the GNU Lesser General Public License 2.1 (LGPL 2.1) or above.

Lates Release

Language Qt5 Qt6

Documentation

Build status

Commit Activity Last Commit Contributors

Open Issues Closed Issues

Open PRs Closed PRs

CodeQL

EXAMPLES-Page

Main Features

  • 2D Plotter widget class (JKQTPlotter
    • high-quality plotting
    • no other dependencies than Qt >= 5.0 (CImg and OpenCV are optional dependencies)
    • highly customizable axes/grids (linear/log, date/time, custom ticks ...)
    • JKQTMathText: 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
    • can be easily extended by deriving a new graph from JKQTPPlotElement, JKQTPPlotAnnotationElement, JKQTPGeometricPlotElement, JKQTPGraph
  • optional: OpenCV, CImg interfaces
  • CMake-based build system
  • extensive set of Examples/Tutorials
  • extensive doxygen-generated Documentation

Documentation

A Documentation (auto-)generated with doxygen from the trunk source code can be found here: http://jkriege2.github.io/JKQTPlotter/index.html

There are also some subpage of general intetest:

Examples

There is a large set of usage examples (with explanations for each) and tutorials in the folder ./examples/. All test-projects are Qt-projects that use qmake to build. You can load them into QtCreator easily.

Screenshots

The Screenshots-page contains several screenshots, partly taken from the provided examples, but also from other software using this libarary (e.g. QuickFit 3.0)

EXAMPLES-Page

Building

Lates Release

JKQTPlotter contains two different build systems: A modern CMake-based build and an older (and deprecated!) QMake-based build (which works out of the box with Qt 5.x and QT 6.x). Both systems are explained in detail in http://jkriege2.github.io/JKQtPlotter/page_buildinstructions.html.

With CMake 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"