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
Ondřej Čertík 18f454f1b2 Only use clang on macOS
The gcc version was using clang underneath also. If we wanted to use
gcc, we would need to ensure cmake picks it up properly. We do not
really need to test gcc on macOS, as long as things build correctly
there with the default compiler (clang).
2019-11-18 12:17:24 -07:00
ci Move install and tests into scripts 2019-11-18 11:58:38 -07:00
cmake reworked CMake build system ... now JKQT...Config.cmake-files are written into the correct directory 2019-11-18 15:59:06 +01:00
doc DOC-fix: two example-descriptions were not a subpage of the examples page 2019-11-18 16:09:22 +01:00
examples improved speedtest example (context-menu now allows to select the different options) and updated performance table for a newer processor 2019-11-18 16:46:15 +01:00
lib fix issue #19: got rid of jkqtpArrayMalloc(), jkqtpArrayCalloc(), jkqtpArrayFree() (which were a remenant of QuickFit 3 and not really portable or useful) 2019-11-18 16:15:49 +01:00
qmake + bugfixed DLL-export when building shared libraries 2019-06-22 14:21:32 +02:00
screenshots added CImg interface (header-only) + examples 2019-11-16 13:50:43 +01:00
.gitignore reworked CMake build system ... now JKQT...Config.cmake-files are written into the correct directory 2019-11-18 15:59:06 +01:00
.travis.yml Only use clang on macOS 2019-11-18 12:17:24 -07:00
appveyor.yml only use CMake builds on AppVeyor 2019-06-30 21:11:53 +02:00
CMakeLists.txt Fix the name of jkqtplotter_lib_properties 2019-11-18 10:46:08 -07:00
JKQtPlotterBuildAllExamples.pro - removed many compiler warnings 2019-06-21 21:48:14 +02:00
LICENSE Initial commit 2015-07-11 12:55:50 +02:00
README.md added CImg interface (header-only) + examples 2019-11-16 13:50:43 +01:00
readme.txt.in + added license/readme output to INSTALL-target in CMake 2019-06-22 16:42:42 +02:00

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, ...)
    • 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 or JKQTPPlotObject
  • 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

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

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.

EXAMPLES-Page

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

JKQTPlotter contains two different build systems: A modern CMake-based build and an older 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.

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"

Continuous Integration Status

Build status