Plotting widget for Qt, including data management and LaTeX rendering

barchart, boxplots, charting, charting-library, graphics-programming, latex-parser, plot, plotting, qmake, qt, qt-gui, qt-libraries, qt-widgets, qt5, qt5-gui, qt5-widgets, scientific-visualization, statistical-methods, statistics, violinplot
inqlude install jkqtplotter


JKQTPlotter - A Qt Plotting Library

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

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

Main Features

  • 2D Plotter class (JKQTPlotter)
    • high-quality plotting
    • no other dependencies than Qt >=4.7 (compatible with Qt 5.xx)
    • 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, ...)
  • 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 or JKQTPPlotObject
  • optional: OpenCV interface
  • extensive set of Examples/Tutorials
  • extensive doxygen-generated Documentation


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

Documentation is auto-generated after pushes by Travis: Build Status


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.



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)



Building instructions can be found here:

Continuous Integration Status

Build status