Skip to content

Releases: jkriege2/JKQtPlotter

v5.0.0-beta1

30 Nov 20:18
d243218

Choose a tag to compare

v5.0.0-beta1 Pre-release
Pre-release

First Beta-Release for upcoming 5.0.0 of JKQtPlotter

Changes, compared to v4.0.0 include:

General/Build-System:

  • BREAKING: renamed library JKQTCommonStatisticsAndMath to JKQTMath. Note: A CMake-ALIAS-Library JKQTCommonStatisticsAndMath was also added to ease transition for users
  • BREAKING: JKQTFastPlotter class and library are now deprecated and will be removed in future versions!
  • BREAKING: The QMake build system is deprecated and will not get the same love and atttention as the recommended CMake system. The QMake scripts might be removed in future versions!
  • FIXED/SECURITY not using sprintf() any more ... replaced by e.g. snprintf() , which is more secure.
  • FIXED issue #102: Fix CMake Compile Error: JKQTCommonLib no properly linked in JKQTMath static build (thanks to user:Neumann-A for reporting)
  • CLEANUP (BREAKING) of library structure
  • NEW: Using precompiled headers in CMake-build to speed up build times
  • NEW/BREAKING: split jkqtcommon into basic tools and jkqtmath for advanced math tools not used by all libs
  • NEW: When using a MSVC compiler, the generated PDB files are installed to CMAKE_INSTALL_PREFIX/bin/
  • NEW: Added CMake option JKQtPlotter_BUILD_WITH_TIMING_INFO_OUTPUT, which activates several runtime-measurement guards of type JKQTPAutoOutputTimer (output via qDebug())
  • NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
  • NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via BUILD_SHARED_LIBS, which retires JKQtPlotter_BUILD_STATIC_LIBS, JKQtPlotter_BUILD_SHARED_LIBS and removes the capability to build static and shared libraries in one location (fixes issue #104)
  • NEW: prepareed library for CMake's FetchContent-API
  • NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
  • NEW add JKQTPExpected datatype, jkqtp_roundToDigits(), generic RegularExpression functions (jkqtp_rxExactlyMatches(), jkqtp_rxIndexIn(), jkqtp_rxContains(), jkqtp_rxPartiallyMatchesAt() )
  • NEW CSS-parser JKQTPCSSParser in order to parse e.g. linear-gradient() specifications in jkqtp_String2QBrushStyleExt()
    JKQTPlotter:

JKQTPlotter

Read more

Bugfix-Release for 4.0.0 branch, (replaces v4.0.2)

12 Mar 21:11
0d4e3bf

Choose a tag to compare

This includes everything from v.4.0.0/v4.0.1 and in addition:

#115: bugfix for drawing custom labels

NOTE: This release replaces v4.0.2, which was put onto the wrong branche and was dysfunctional (cf. #123)

Bugfix-Release for 4.0.0 branch

06 Jan 14:24

Choose a tag to compare

This includes everything from v.4.0.0/v4.0.1 and in addition:

#115: bugfix for drawing custom labels

bugfix release for v4.0.0

03 Jan 20:20

Choose a tag to compare

same contents as https://github.com/jkriege2/JKQtPlotter/releases/v4.0.0

in addition fixed:

  • #113: fixed a bug in the CMakeLists.txt-file for JKQTPlotterLib: some headers were not properly installed

Qt6 compatibility & rework of class hierarchy & diverse improvements + bugfixes

24 Apr 20:14

Choose a tag to compare

Changes, compared to v2019.11.3 include:

  • fixed issue #34: Skip drawing the line for negative values in log plots, thanks to user:certik
  • fixed issue #38: Buffer overflow, thanks to user:zertyz
  • fixed issue #43: jkqtp_format() had undefined behaviour, thanks to user:Makis42
  • fixed issue #41: Build error when JKQtPlotter_BUILD_INCLUDE_XITS_FONTS set to OFF , thanks to user:smistad
  • fixed issue #37: CMake installs things into $PREFIX/doc/*.txt , thanks to user:certik
  • fixed issue #45: Build error on mac jkqtfastplotter.cpp:342:28: Variable has incomplete type 'QPainterPath', thanks to user:abdedixit
  • merged PR #47: Some minor build fixes, thanks to user:patstew
  • fixed issue #48: Cannot #include QPrintPreviewWidget, thanks to user:schlenger
  • fixed issue #49: Incorrect tag in style .ini-files, thanks to user:smistad
  • fixed issue #50: Double-Click Zoom Issue, thanks to user:Delfinos
  • fixed issue #52: 'runtime_error': is not a member of 'std', thanks to user:gomgomi
  • fixed issue #56: Logscale zoom multiple zeros? , thanks to user:sufuk
  • merged PR #51: Bug: JKMathParser exception return local variable , thanks to user:StephanOostveen
  • renamed/breaking change: renamed JKQTPPlotObject->JKQTPGeometricPlotElement and added new base class JKQTPPlotAnnotationElement
  • renamed/breaking change: renamed JKQTPColorPaletteStyleAndToolsMixin::setPalette() -> JKQTPColorPaletteStyleAndToolsMixin::setColorPalette()
  • removed/breaking change: removed the usage of some deprecated functions and objects (e.g. QMatrix)
  • removed/breaking change: removed the overlay elements (derived from JKQTPOverlayElement), which were not very well set up and are more confusing than useful.
  • improved/breaking change: geometric objects now use an adaptive drawing algorithm to represent curves (before e.g. ellipses were always separated into a fixed number of line-segments)
  • improved/breaking change: geometric elements constructor: removed all styling properties, added setStyle()-functions to replace them. This is necessary to better work with the extended Styling system
  • improved: constructors and access functions for several geometric objects (e.g. more constructors, additional functions to retrieve parameters in diferent forms, iterators for polygons, ...)
  • improved/breaking change: reworked class hierarchy of parsed function plots and declared several setters as slots.
  • improved/breaking change: reworked class hierarchy of bar & impulse charts.
  • improved/breaking change: reworked class hierarchy of range charts.
  • improved/breaking change: reworked class hierarchy of special line (step) graphs.
  • improved/breaking change: reworked class hierarchy of filled line graphs.
  • improved/breaking change: reworked class hierarchy of range plot elements (JKQTPVerticalRange and JKQTPHorizontalRange).
  • improved/breaking change: reworked class hierarchy of boxplots.
  • improved/breaking change: reworked class hierarchy of violin plots.
  • improved/breaking change: extended styling system for graphs.
  • improved/breaking change: reworked graph Base-Classes (promoted several setters to slots, added Q_PROPERTY- and Q_ENUM-declarations...)
  • improved/breaking change: made more functions and function parameters const
  • improved/breaking change: image plots now manage CONST-data, not plain pointer arrays... This is OK, since the raw data is never owned nor modified by the plot, only referenced!.
  • bugfixed/improved: aspect ratio handling in JKQTPlotter.
  • new: switching to semantic versioning ... starting with v4.0.0
  • new: Compatibility with Qt 5.15 and Qt6
  • new: added support for high-dpi devices (thanks for PR #55: Enable high-dpi support for plots by user:akenmorris.
  • new: added geometric plot objects JKQTPGeoArrow to draw arrows (aka lines with added line-end decorators, also extended JKQTPGeoLine, JKQTPGeoInfiniteLine, JKQTPGeoPolyLines to draw line-end decorator (aka arrows)
  • new: all geometric objects can either be drawn as graphic element (i.e. lines are straight line, even on non-linear axes), or as mathematical curve (i.e. on non-linear axes, lines become the appropriate curve representing the linear function, connecting the given start/end-points). The only exceptions are ellipses (and the derived arcs,pies,chords), which are always drawn as mathematical curves
  • new: a new graph class JKQTPXYFunctionLineGraph draws parametric 2D curves ( [x,y] = f(t) ), see \ref JKQTPlotterEvalCurves for an example
  • new: added several new copy/set-functions to JKQTPDatastore
  • new: added JKQTPlotter signal, when widget was resized
  • new: added JKQTPFilledHorizontalRangeGraph, complementing JKQTPFilledVerticalRangeGraph

v2019.11.3: 3rd bugfix release for v2019.11

28 Jun 08:55

Choose a tag to compare

v2019.11.2: 2nd bugfix release for v2019.11

11 Jan 14:40

Choose a tag to compare

v2019.11.1: 1st bugfix release for v2019.11

05 Dec 07:31
3f645e1

Choose a tag to compare

  • fixed issue #34 (fix for log-plotting), thanks to @certik
  • fixes issue #36 (make new release)

First Release after Major Update/Refactoring

24 Nov 12:30

Choose a tag to compare

Starting in summer 2018, JKQTPlotter received some major workover. During this, it lost compatibility to the QuickFit 3.0 code base.

Changes, compared to v2018.08 include:

  • new: CMake-base build, which deprecated the QMake-build
  • new: added QMake-Projects for static and for shared library builds
  • new: extensive set of Examples and Tutorials
  • new: checked builds with continuous integration from AppVeyor: https://ci.appveyor.com/project/jkriege2/jkqtplotter/branch/master
  • new/update: support for building with Microsoft Visual Studio (Win), MinGW (Win), GCC (Linux/MacOS)
  • update: massively improved (doxygen-generated) Online-Documentation (http://jkriege2.github.io/JKQtPlotter/index.html) (automatically generated after each commit using ravis CI)
  • update: refactoring of the library's directory structure
  • update: refactoring/renaming of API, including the function anming scheme and class names
  • changed: using static const variables instead of #define for fixed default values (e.g. JKQTPImageTools::LUTSIZE, JKQTPImageTools::PALETTE_ICON_WIDTH, JKQTPlotterDrawinTools::ABS_MIN_LINEWIDTH, JKQTMathText::ABS_MIN_LINEWIDTH ...)
  • Updates to JKQTPlotter:
    • new: added JKQTPSingleColumnSymbolsGraph for single-column data, e.g. drawn as (random) scatter or bee-swarm or rug plots
    • new: stacked barcharts with JKQTPBarVerticalStackableGraph, JKQTPBarHorizontalStackableGraph
    • new: use/support of C++11 features (e.g. std::function<> and lambda functions in JKQTPXFunctionLineGraph / JKQTPYFunctionLineGraph )
    • new: optional OpenCV interface
    • new: optional CImg interface
    • new: Styling System for JKQTPlotter
    • new: added debugging option, which surrounds different regions with visible rectangles (JKQTBasePlotter::enableDebugShowRegionBoxes() )
    • new: frames (plot viewport, key/legend ...) may be rounded off at the corners
    • new: diverse new styling options (default font name/size ...)
    • new: additionl options for styling coordinate axes
    • new: Mix-In classes to unify plot styleing functions (setters/getters) in all graphs
    • new: additional options for graph filling (color gradients, textures, ...) as provided by QBrush
    • new: added a general feature to JKQTPPlotElement which allows to show a graph in a highlighted state (if supported by the derived graph class!)
    • new: JKQTPXYParametrizedScatterGraph: added functors to transform column values into symbol type+size and line-width to give even more control
    • new: user-interaction tool that shows coordinates of data points near the current mouse position (when mouse is dragged, while mouse button is pressed), see: jkqtpmdaToolTipForClosestDataPoint
    • new: user-interaction tool that measures distances and angles when mouse is dragged, while mouse button is pressed), see: jkqtpmdaRuler
    • new: advanced styling options for boxplots + example for the styling: Example (JKQTPlotter): Styling different aspects of boxplots
    • new: notched boxplots, see: Example (JKQTPlotter): Styling different aspects of boxplots
    • new: several new plot symbols, see: JKQTPGraphSymbols
    • new: Statistics library with functions to calculate histograms, regression, kernel density estimates, ... see: Statistical Computations
    • new: iterator interface and improved documentation for JKQTPDatastore
    • new: violin plots (see Example (JKQTPlotter): Violin Plots )
    • changed: removed old selection-code and replaced by general highlighting feature
    • changed: JKQTPStepHorizontalGraph has been renamed to JKQTPSpecialLineHorizontalGraph (vertical variants also) and have gained additional features (baseline for filling and drawing of symbols)
    • changed: filled curve graphs (e.g. JKQTPSpecialLineHorizontalGraph) are now merely a specializedly initialized JKQTPSpecialLineHorizontalGraph
    • removed: Removed datarange-feature
    • update: reworked user interactions API
    • update: reworked error indicator base classes
    • update: improvements to contour plots (e.g. highlighting single contour levels, split into a class for simple C-arrays [JKQTPContourPlot] and one for image data in a JKQTPDatastore column [JKQTPColumnContourPlot]) + added example, see JKQTPColumnContourPlot and Example (JKQTPlotter): Contour Plots
    • fixed: colorbars at top were positioned over the plot label
    • fixed: RGB-image plots now work properly with inverted axes (image is inverted, befor image was not shown at all)
  • Updates to JKQTMathText:
    • new: slanted fractions (\sfrac{}{}, \stfrac{}{})
    • update/fix: several general improvements and bugfixes
    • update/fix: improved error handling
    • update: updated contained version of STIX fonts, better handling of different STIX versions
    • update: improved documentation