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
Jan W. Krieger ee4262d14c
Merge pull request #34 from certik/log_zero2
Skip drawing the line for negative values in log plots
2019-11-29 07:27:50 +01:00
ci Do not use "set -e" for the activate script 2019-11-18 12:23:24 -07:00
cmake fixed several compiler warnings (mostly Visual Studio): clean-up of use of math constants M_PI ... and j0()/j1()/...-functions etc. 2019-11-24 10:42:44 +01:00
doc pushed lib version to 2019.11.0 2019-11-24 13:29:56 +01:00
examples fixed some documentation errors (images didn't show up, because of broken links) 2019-11-24 12:43:37 +01:00
lib Merge pull request #34 from certik/log_zero2 2019-11-29 07:27:50 +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 solved link error with Visual Studio (upper/lower case mismatch in DEFINE was 'JKQtPlotter_LIB_...' but should be 'JKQTPLOTTER_LIB_...') 2019-11-24 10:42:23 +01:00
.travis.yml Only use clang on macOS 2019-11-18 12:17:24 -07:00
appveyor.yml AppVeyor now only builds RELEASE-builds ... 2019-11-24 12:20:03 +01:00
CMakeLists.txt modified master version not not clash with branch version 2019-11-24 13:32:18 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-11-21 21:46:40 +01: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 release badge 2019-11-24 13:36:27 +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.

Lates Release

Language Qt 4&5 Documentation

CI: Windows Build CI: Documentation/Linux/MacOX Build

Commit Activity Last Commit Contributors

Open Issues Closed Issues

Open PRs Closed PRs

EXAMPLES-Page

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

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). 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"