JKQtPlotter/doc/dox/whatsnew.dox

313 lines
31 KiB
Plaintext
Raw Normal View History

/*!
2019-05-18 02:46:52 +08:00
\page page_whatsnew What's New (Release Notes/Versions)
2022-06-03 19:48:27 +08:00
This page lists release notes for the different version of JKQTPlotter
\tableofcontents
2020-06-28 16:17:38 +08:00
\section page_whatsnew_TRUNK trunk/master
2019-05-18 02:46:52 +08:00
\subsection page_whatsnew_TRUNK_OVERVIEW trunk: Overview
2022-04-23 02:54:13 +08:00
Changes, compared to \ref page_whatsnew_V4_0_0 "v4.0.0" include:
<ul>
2022-07-18 21:01:12 +08:00
<li>General:<ul>
<li>CLEANUP (BREAKING) of library structure</li>
<li>NEW: Using precompiled headers in CMake-build to speed up build times</li>
<li>NEW/BREAKING: split jkqtcommon into basic tools and jkqtcommon_statistics_and_math for advanced math tools not used by all libs</li>
2022-07-18 21:01:12 +08:00
</ul></li>
2022-07-24 20:50:28 +08:00
<li>JKQTPlotter:<ul>
<li>FIXED issue described in <a href="https://github.com/jkriege2/JKQtPlotter/pull/62">#62: Fix custom labels draw, because giving exactly two label-strings did not display all of them</a>, thanks to <a href="https://github.com/FalsinSoft">user:FalsinSoft</a></li>
<li>FIXED issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/70">#70: Typo in jkqtplotter/CMakeLists.txt</a>, thanks to <a href="https://github.com/tedlinlab">user:tedlinlab</a></li>
<li>FIXED issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/80">#80: Bug with multiple inheritance with Q_GDAGET with CLANG</a>, thanks to <a href="https://github.com/igormironchik">user:igormironchik</a>, caused by <a href="https://bugreports.qt.io/browse/QTBUG-104874">QTBUG-104874</a></li>
<li>FIXED: styling was not properly applied to coordinate axes of colorbars outside the plot</li>
<li>FIXED issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/73">#73: Symbol thickness differs in actual plot and legend</a>, thanks to <a href="https://github.com/sim186">user:sim186</a></li>
<li>FIXED plot-size calculation for filled graphs</li>
<li>REORGANIZED: separated line-graphs from jkqtpscatter.h/.cpp into jkqtplines.h/.cpp</li>
<li>IMPROVED: QT6-compatibility by removing deprecated warnings</li>
<li>IMPROVED/REWORKED: reworked JKQTPErrorPlotstyle and error indicator plotting so error-inidcators can be specified as ORed combination of flags from JKQTPErrorPlotstyleElements, added additional error indicator styles (half-bars, arrows...)</li>
<li>IMPROVED/REWORKED: reworked JKQTPCADrawMode and coordinate axis drawing so the draw mide can be specified as ORed combination of flags from JKQTPCADrawModeElements, added flags to draw arrows at the end of the axis line</li>
<li>IMPROVED/REWORKED: coordinate axis code was refactored</li>
<li>NEW: JKQTPFilledCurveXGraph and JKQTPFilledCurveYGraph can now plot wiggle plots with different fill styles above and below the baseline (feature request <a href="https://github.com/jkriege2/JKQtPlotter/issues/68">#68 Wiggle Plots</a> from <a href="https://github.com/xichaoqiang">user:xichaoqiang</a> </li>
<li>NEW/BREAKING CHANGE: data tooltip can now also be shown when "just" moving the mouse (so far this was only possible when dragging the mouse with a button pressed). This also removes JKQtPlotter::getActMouseLeftAsToolTip() and adds JKQtPlotter::getActMouseMoveToolTip() instead! Also the default toolbars and context menus changed!</li>
<li>NEW: new "seaborn" style for plots, see \ref jkqtpplotter_styling </li>
<li>NEW/BREAKING CHANGE: changed JKQTPColorDerivationMode into a struct, which extends its capabilities above the previously available few enum-items</li>
<li>NEW: added debug-feature to show boxes around text in the plot</li>
<li>BREAKING: Print-Support can now be switched off with a CMAKE-option JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT=ON. This also switches off PDF and SVG export, partly solves issue <a href="https://github.com/jkriege2/JKQtPlotter/issues/81">#81</a>, many thanks to <a href="https://github.com/sufuk">user:sufuk</a> for contributing part of the code and supplying the idea! </li>
<li>NEW: improved plotting speed for line-graphs by drawing a series of single lines instead of a polyline in some cases</li>
<li>NEW: improved plotting speed for line-graphs by a compression algorithm (see JKQTPGraphLinesCompressionMixin) that removes overlaying lines (e.g. in JKQTPXYLineGraph)</li>
<li>NEW: improved plotting speed for line-graphs by a clipping algorithm (applies to JKQTPXYLineGraph, JKQTPGraphErrorStyleMixin, JKQTPSpecialLineHorizontalGraph, JKQTPSpecialLineVerticalGraph and others)</li>
<li>NEW: improved plotting speed for scatter-graphs by not calling draw functions for symbols outside the plot window (e.g. in JKQTPXYLineGraph)</li>
<li>NEW: added JKQTBasePlotter::grabPixelImage() and JKQTPlotter::grabPixelImage(), which grab the plotter into a QImage</li>
<li>NEW: added option to not display the preview dialog to JKQTBasePlotter::copyPixelImage() and JKQTPlotter::copyPixelImage()</li>
<li>NEW: added simple scatter plot JKQTPXYScatterGraph</li>
<li>NEW: made resize-timer status accessible from outside via JKQTPlotter::isResizeTimerRunning() </li>
<li>NEW: made it's delay a global static variable that can be set and red with JKQTPlotter::setGlobalResizeDelay() and JKQTPlotter::getGlobalResizeDelay()</li>
<li>NEW: Using JKQTMathText::useGuiFonts() for FONT rendering by default</li>
2022-09-06 17:57:58 +08:00
<li>NEW: added the option to draw a character from a font as symbol (<code>JKQTPCharacterSymbol+QChar('C').unicode()</code> and <code>JKQTPFilledCharacterSymbol+QChar('C').unicode()</code>)</li>
<li>NEW: added the option to register a custom symbol using JKQTPRegisterCustomGraphSymbol() </li>
<li>NEW: added property drawLineInForeground to JKQTPXYLineGraph and JKQTPXYParametrizedScatterGraph</li>
<li>NEW: added JKQTPXYGraph::setKeyColumn()/JKQTPXYGraph::getKeyColumn() and JKQTPXYGraph::setValueColumn()/JKQTPXYGraph::getValueColumn() and corresponding functions in other classes. In most graph classes they point to xColumn for key and yColumn for values. These functions are virtual and overwritten in derived classes with horizontally oriented graphs, where they point to yColumn for key and yColumn for value. This way you can write generic code with classes for both orientations.</li>
<li>NEW: barcharts (derived from JKQTPBarGraphBase) can be configured to use different fill styles above and below the baseline, see JKQTPBarGraphBase::FillMode </li>
<li>NEW: added new error indicator styles JKQTPErrorHalfBarsOutwards, JKQTPErrorHalfBarsInwards, JKQTPErrorHalfBarsAbove, JKQTPErrorHalfBarsBelow which are especially useful for barcharts</li>
<li>NEW: Added signals JKQTBasePlotter::beforeExporting()/JKQTBasePlotter::afterExporting() and JKQTBasePlotterJKQTBasePlotter:beforePrinting()/JKQTBasePlotter::afterPrinting() which allow to modify the plot just before and just after an export/print</li>
<li>NEW: Added new JKQTPCALabelType elements (JKQTPCALTfrac...), so axis label ticks can be displayed as fractions 1/2 instead of 0.5<br>
JKQTPCALTscientific, so axis label ticks can be displayed as numbers in scientific notation like \c 1.2E-34<br>
JKQTPCALTprintf for general formatting with a printf-format string </li>
<li>NEW: all elements of a coordinate axis may have their own color now </li>
<li>NEW: added possibility to scale the axis ticks by a factor (e.g. pi) to generate axes with ticks <tt>0pi, 1pi, 2pi ...</tt> </li>
<li>NEW: added option to draw a zero axis to JKQTPCoordinateAxis, which draws an axis at the origin of the coordinate system </li>
2022-07-24 20:50:28 +08:00
</ul></li>
<li>JKQTMathText:<ul>
<li>FIXED: JKQTMathText added a little whitespace before and after the LaTeX-string. This was removed as it disturbed the layout of text in plots</li>
<li>FIXED: height-calculation of frac-like instructions: before the ascent and descent were equal, even if the numerator and denominator have different heights</li>
<li>FIXED: strikeoutPos was not correctly calculated in sub-/superscript node</li>
<li>FIXED: symbol spacing in math mode (and text mode)</li>
2022-07-24 20:50:28 +08:00
<li>FIXED/IMPROVED: JKQTMathText renders several LaTeX strings better (simple braces in math mode, \c +-*... as symbols with proper sizes in math mode, added some missing instruction aliases, improved size of \\vec and \\hat, corrrected fonts usage for \\mathrm</li>
<li>FIXED: \c \\sum and \c \\prod used the wrong symbol in XITS-mode</li>
<li>IMPROVED: high-dpr-support in JKQTMathText</li>
<li>IMPROVED: typesetting of sub-/supercripts, especially for large math operators and braces</li>
<li>MODIFIED: brace node now calculates the extension of the child height above or below the strikeoutPos, in order to center braces around the strikeoutPos</li>
<li>IMPROVED: improved drawing of parantheses, square brackets ... , underbrace/overbrace</li>
<li>IMPROVED: added x-correction for sub/superscript above/below/besides integrals</li>
<li>IMPROVED: rendering of sqrt</li>
<li>IMPROVED: rendering and size calculation of decorations</li>
2022-07-24 20:50:28 +08:00
<li>IMPROVED: tokenizing and parsing of text in text-mode: now a lot of accents with commands like \c \\\"a, \c \\'e and variants (e.g. \c {\\\"a}, \c \\\"{a}, ...) are supported now</li>
<li>IMPROVED/BREAKING: refactored symbol node JKQTMathTextSymbolNode and changed font-lookup!</li>
<li>IMPROVED/NEW/BREAKING: refactored whitespace-processing node JKQTMathTextWhitespaceNode, now all major LaTeX whitespace commands are supported properly</li>
<li>IMPROVED/NEW/BREAKING: refactored LaTeX parser in JKQTMathText</li>
<li>REMOVED/BREAKING: \c \\v[a-zA-Z] and shorthand for \c \\vec{a-zA-Z} was removed, implementation of \c \\bbR,\c \\bbC,... changed</li>
<li>MODIFIED/BREAKING: new options interface for JKQTMathText::parse()</li>
<li>EMOVED/BREAKING: removed JKQTMathtext::unparsedNode</li>
<li>IMPROVED/REWORKED rendering of text in text- and math-mode. Now it is more consistent with the output of LaTeX itself</li>
<li>IMPROVED/REWORKED rendering of blackboard font: now several different rendering modes can be selected using JKQTMathText::setFontBlackboradMode()</li>
<li>BREAKING/REWORKED: The \\verb!...!-command now works the same as in LaTeX</li>
<li>BREAKING/REWORKED: Separated the LaTeX parser into JKQTMathTextLatexParser from JKQTMathText</li>
<li>BREAKING/CLEANUP: cleanup: Removed Parameter prevNodeSize from JKQTMathTextNode::draw() and JKQTMathTextNode::getSize()/JKQTMathTextNode::getSizeInternal(), since it is only really necessary for JKQTMathTextSubscriptNode and JKQTMathTextSuperscriptNode</li>
<li>BREAKING/CLEANUP: using JKQTMathTextNodeSize for all size-calculation functions and got rid of all functions that take the output parameters with call-by-reference, additional information can be outut by local size-classes that derive from JKQTMathTextNodeSize, see e.g. JKQTMathTextSymbolNode::NodeSize and JKQTMathTextSymbolNode::getSymbolSize()</li>
<li>NEW: JKQTMathTextVerticalListNode allows to typeset a vertical list of lines</li>
<li>NEW: JKQTMathText::parse() by default allows linebreaks in the LaTeX string to be parsed. This can be switched off by a parameter</li>
<li>NEW: added functions to set the font-size in pixels (as alternative to the existing functions that set them in points), implements request <a href="https://github.com/jkriege2/JKQtPlotter/issues/76">#76</a> from <a href="https://github.com/igormironchik">user:igormironchik</a> </li>
<li>NEW: reworked drawing of decorations: improved appearance and positioning!</li>
<li>NEW: additional method JKQTMathtext::getSizeDetail() that returns all size-properties as a convenient struct, also added matching varinat JKQTMathTextNode::getSize() </li>
<li>NEW: additional method JKQTMathtext::drawIntoPixmap(), JKQTMathtext::drawIntoPicture(), JKQTMathtext::drawIntoImage() which returns a QPixmap, QPicture and QImage respectively that contains the render result of the currently parsed markup</li>
<li>NEW: array/tabular-environments have limited support for formatting string like \c l|r|c and for \c \\hline , \c \\hdashline , \c \\toprule , \c \\midrule , \c \\bottomrule</li>
<li>NEW: reworked code structure: broke up large, single CPP-files into several smaller files!</li>
<li>NEW: reworked node class tree: inserted base-class nodes for single-child, dual-child!</li>
<li>NEW: improved frac-rendering: font-scaling takes nesting-level into account, overall-rendering, sizes, if a brace surrounds a frac, the heights are equal above and below to center the brace , ...</li>
<li>NEW: shows strikeoutPos when drawing Debug-Boxes</li>
<li>NEW: LaTeX-Parser understands optional instruction parameters in [...] now</li>
<li>NEW: LaTeX-Parser simplifies parse-tree to increase speed of execution</li>
<li>NEW: added new decoration instructions: \c \\cancel, \c \\xcancel, \c \\bcancel, \c \\sout, \c \\ocirc, \c \\widetilde, \c \\widehat, \c \\breve</li>
2022-07-24 20:50:28 +08:00
<li>NEW: \c \\limits and \c \\nolimits works as in LaTeX now (before it was simply removed and the functionality implemented for a fixed list of symbols)</li>
<li>NEW: added top-corner (\c \\ulcorner/\c \\urcorner ) and bottom-corner brackets (\c \\llcorner/\c \\lrcorner )</li>
<li>NEW: added \c \\overbracket and \c \\underbracket</li>
<li>NEW: added \c \\shaded{color}{...} </li>
<li>NEW: added \c \\dashbox{...} </li>
<li>NEW: added \c \\dottedbox{...} </li>
<li>NEW: added \c \\snugshade{...} </li>
<li>NEW: added \c \\snugbox{...} </li>
2022-07-24 20:50:28 +08:00
<li>NEW: added \c \\acute{X}, \c \\grave{X}, \c \\acute{X}</li>
<li>NEW: added \c \\dashuline{X}, \c \\dotuline{X}</li>
<li>NEW: added \c \\underleftarrow{X}, \c \\underrightarrow{X}, \c \\underleftrightarrow{X}, \c \\overleftarrow{X}, \c \\overrightarrow{X}, \c \\overleftrightarrow{X}</li>
<li>NEW: added \c \\userfont{SystemFontName}{Text} instruction</li>
<li>NEW: added \c \\unicode{HEX} and \c \\utfeight{HEX} instruction to draw unicide characters by code</li>
<li>NEW: added \c \\substack[lcr]{...\\\\...} , \c \\lsubstack{...\\\\...} , \c \\rsubstack{...\\\\...} instructions</li>
<li>NEW: added \c \\phantom{xXy} , \c \\vphantom{xXy} and \c \\hphantom{xXy} instructions for whitespaces with the size of \c xXy </li>
<li>NEW: added support for flushleft/flushright/center-environments with linebreaks</li>
<li>NEW: added support for framed/shaded/snugshade-environments with linebreaks and framed</li>
<li>NEW: added support for -- and --- for en- and em-dashes</li>
2022-08-03 22:17:54 +08:00
<li>NEW: added support for \c \\char\"HEX , \c \\char\'OCTAL and \c \\charDECIMAL for inserting any uicode character code</li>
<li>NEW: added support for \\bigl,\\bigr,\\Bigr,... commands for fixed-size but enlarged paramtheses</li>
<li>NEW: added support for \\begin{verbatim}...\\end{verbatim}, \\begin{verbatim*}...\\end{verbatim*}</li>
<li>NEW: added command line tool \ref JKQTMathTextRenderCmdLineTool that renders LaTeX into images, using it to generate the documentation images for JKQTMathText</li>
<li>NEW: added environment-modifying commands for font sizes: \c \\tiny ... \c \\normalsize ... \c \\Huge </li>
<li>NEW: added environment-modifying commands for text color: \c {\\color{COL}...} </li>
<li>NEW: added environment-modifying commands for text formatting: \c {\\bfseries...}, \c {\\itshape...}, \c {\\bf...}, \c {\\it...}, \c {\\sffamily...}, \c {\\ttfamily...}, ... </li>
<li>NEW: Added the Fira Math fonts as sans-serif symbol font to the library (as a ressource) and added JKQTMathText::useFiraMath()</li>
<li>NEW: Added JKQTMathText::useGuiFonts()</li>
2022-07-24 20:50:28 +08:00
</ul></li>
2022-04-23 02:54:13 +08:00
</ul>
\subsection page_whatsnew_TRUNK_DOWNLOAD trunk: Download
This release is available from<ul>
<li> Source code branch: <a href="https://github.com/jkriege2/JKQtPlotter">https://github.com/jkriege2/JKQtPlotter</a>
<li> Source Code download (ZIP): <a href="https://github.com/jkriege2/JKQtPlotter/archive/master.zip">https://github.com/jkriege2/JKQtPlotter/archive/master.zip</a>
<li> Git-Link: <a href="https://github.com/jkriege2/JKQtPlotter.git">https://github.com/jkriege2/JKQtPlotter.git</a>
</ul>
2022-04-23 02:54:13 +08:00
\section page_whatsnew_V4_0_0 V4.0.0: Qt6 compatibility & diverse improvements + bugfixes
\subsection page_whatsnew_V4_0_0_OVERVIEW V4.0.0: Overview
2019-11-24 20:22:10 +08:00
Changes, compared to \ref page_whatsnew_V2019_11 "v2019.11" include:
2019-12-05 15:33:40 +08:00
<ul>
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/34">#34: Skip drawing the line for negative values in log plots</a>, thanks to <a href="https://github.com/certik">user:certik</a></li>
2020-01-07 01:31:48 +08:00
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/38">#38: Buffer overflow</a>, thanks to <a href="https://github.com/zertyz">user:zertyz</a></li>
2020-06-28 16:17:38 +08:00
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/43">#43: jkqtp_format() had undefined behaviour</a>, thanks to <a href="https://github.com/Makis42">user:Makis42</a></li>
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/41">#41: Build error when JKQtPlotter_BUILD_INCLUDE_XITS_FONTS set to OFF </a>, thanks to <a href="https://github.com/smistad">user:smistad</a></li>
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/37">#37: CMake installs things into $PREFIX/doc/ *.txt </a>, thanks to <a href="https://github.com/certik">user:certik</a></li>
2020-08-14 20:17:24 +08:00
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/pull/45">#45: Build error on mac jkqtfastplotter.cpp:342:28: Variable has incomplete type 'QPainterPath'</a>, thanks to <a href="https://github.com/abdedixit">user:abdedixit</a></li>
2020-10-02 23:22:03 +08:00
<li> merged PR <a href="https://github.com/jkriege2/JKQtPlotter/pull/47">#47: Some minor build fixes</a>, thanks to <a href="https://github.com/patstew">user:patstew</a></li>
2022-07-24 22:23:21 +08:00
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/issues/48">#48: Cannot \#include QPrintPreviewWidget</a>, thanks to <a href="https://github.com/schlenger">user:schlenger</a></li>
2022-04-23 02:54:13 +08:00
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/issues/49">#49: Incorrect tag in style .ini-files</a>, thanks to <a href="https://github.com/smistad">user:smistad</a></li>
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/issues/50">#50: Double-Click Zoom Issue</a>, thanks to <a href="https://github.com/Delfinos">user:Delfinos</a></li>
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/issues/52">#52: 'runtime_error': is not a member of 'std'</a>, thanks to <a href="https://github.com/gomgomi">user:gomgomi</a></li>
<li> fixed issue <a href="https://github.com/jkriege2/JKQtPlotter/issues/56">#56: Logscale zoom multiple zeros? </a>, thanks to <a href="https://github.com/sufuk">user:sufuk</a></li>
<li> merged PR <a href="https://github.com/jkriege2/JKQtPlotter/pull/51">#51: Bug: JKMathParser exception return local variable </a>, thanks to <a href="https://github.com/StephanOostveen">user:StephanOostveen</a></li>
<li>renamed/BREAKING change: renamed JKQTPPlotObject->JKQTPGeometricPlotElement and added new base class JKQTPPlotAnnotationElement</li>
<li>renamed/BREAKING change: renamed JKQTPColorPaletteStyleAndToolsMixin::setPalette() -> JKQTPColorPaletteStyleAndToolsMixin::setColorPalette()</li>
<li>removed/BREAKING change: removed the usage of some deprecated functions and objects (e.g. QMatrix)</li>
<li>removed/BREAKING change: removed the overlay elements (derived from JKQTPOverlayElement), which were not very well set up and are more confusing than useful.</li>
<li>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)</li>
<li>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</li>
<li>improved: constructors and access functions for several geometric objects (e.g. more constructors, additional functions to retrieve parameters in diferent forms, iterators for polygons, ...)</li>
<li>improved/BREAKING change: reworked class hierarchy of parsed function plots and declared several setters as slots.</li>
<li>improved/BREAKING change: reworked class hierarchy of bar & impulse charts.</li>
<li>improved/BREAKING change: reworked class hierarchy of range charts.</li>
<li>improved/BREAKING change: reworked class hierarchy of special line (step) graphs.</li>
<li>improved/BREAKING change: reworked class hierarchy of filled line graphs.</li>
<li>improved/BREAKING change: reworked class hierarchy of range plot elements (JKQTPVerticalRange and JKQTPHorizontalRange).</li>
<li>improved/BREAKING change: reworked class hierarchy of boxplots.</li>
<li>improved/BREAKING change: reworked class hierarchy of violin plots.</li>
<li>improved/BREAKING change: extended styling system for graphs.</li>
<li>improved/BREAKING change: reworked graph Base-Classes (promoted several setters to slots, added Q_PROPERTY- and Q_ENUM-declarations...)</li>
<li>improved/BREAKING change: made more functions and function parameters const</li>
<li>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!.</li>
2020-09-12 05:27:31 +08:00
<li>bugfixed/improved: aspect ratio handling in JKQTPlotter.</li>
2022-04-23 02:54:13 +08:00
<li>new: switching to semantic versioning ... starting with v4.0.0</li>
2022-04-23 02:19:25 +08:00
<li>new: Compatibility with Qt 5.15 and Qt6</li>
2022-04-23 02:54:13 +08:00
<li>new: added support for high-dpi devices (thanks for <a href="https://github.com/jkriege2/JKQtPlotter/pull/55">PR #55: Enable high-dpi support for plots </a> by <a href="https://github.com/akenmorris">user:akenmorris</a>.</li>
<li>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)</li>
<li>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</li>
2022-07-24 20:50:28 +08:00
<li>new: a new graph class JKQTPXYFunctionLineGraph draws parametric 2D curves ( \\f$ [x,y] = f(t) \\f$ ), see \ref JKQTPlotterEvalCurves for an example</li>
<li>new: added several new copy/set-functions to JKQTPDatastore</li>
<li>new: added JKQTPlotter signal, when widget was resized</li>
<li>new: added JKQTPFilledHorizontalRangeGraph, complementing JKQTPFilledVerticalRangeGraph</li>
2019-12-05 15:33:40 +08:00
</ul>
2019-11-24 20:22:10 +08:00
\subsection page_whatsnew_V4_0_0_DOWNLOAD V4.0.0: Download
2019-11-24 20:22:10 +08:00
This release is available from<ul>
<li> Source code branch: <a href="https://github.com/jkriege2/JKQtPlotter/tree/v4.0.0">https://github.com/jkriege2/JKQtPlotter/tree/v4.0.0</a>
<li> Latest Release/Tag: <a href="https://github.com/jkriege2/JKQtPlotter/releases/tag/v4.0.0">https://github.com/jkriege2/JKQtPlotter/releases/tag/v4.0.0</a> (2021-April-xx)
</ul>
2019-11-24 20:22:10 +08:00
\section page_whatsnew_V2019_11 v2019.11: Major rework of the library
Starting in summer 2018, JKQTPlotter received some major workover. During this, it lost compatibility to the <a href="https://github.com/jkriege2/QuickFit3">QuickFit 3.0</a> code base.
2019-11-24 20:22:10 +08:00
\subsection page_whatsnew_V2019_11_OVERVIEW v2019.11: Overview
2019-05-18 02:46:52 +08:00
Changes, compared to \ref page_whatsnew_V2018_08 "v2018.08" include:
<ul>
2019-06-21 04:38:51 +08:00
<li> new: CMake-base build, which deprecated the QMake-build</li>
<li> new: added QMake-Projects for static and for shared library builds </li>
<li> new: \ref exampleTutorialProjects "extensive set of Examples and Tutorials" </li>
<li> new: checked builds with continuous integration from AppVeyor: <a href="https://ci.appveyor.com/project/jkriege2/jkqtplotter/branch/master">https://ci.appveyor.com/project/jkriege2/jkqtplotter/branch/master</a> </li>
<li> new/update: support for building with Microsoft Visual Studio (Win), MinGW (Win), GCC (Linux/MacOS) </li>
<li> update: massively improved (doxygen-generated) <a href="http://jkriege2.github.io/JKQtPlotter/index.html">Online-Documentation (http://jkriege2.github.io/JKQtPlotter/index.html)</a> (automatically generated after each commit using ravis CI) </li>
<li> update: refactoring of the library's directory structure </li>
<li> update: refactoring/renaming of API, including the function anming scheme and class names </li>
2022-07-24 22:23:21 +08:00
<li> changed: using static const variables instead of <code>\#define</code> for fixed default values (e.g. JKQTPImageTools::LUTSIZE, JKQTPImageTools::PALETTE_ICON_WIDTH, JKQTPlotterDrawinTools::ABS_MIN_LINEWIDTH, JKQTMathText::ABS_MIN_LINEWIDTH ...)</li>
<li> Updates to JKQTPlotter:
<ul>
<li> new: added JKQTPSingleColumnSymbolsGraph for single-column data, e.g. drawn as (random) scatter or bee-swarm or rug plots </li>
<li> new: stacked barcharts with JKQTPBarVerticalStackableGraph, JKQTPBarHorizontalStackableGraph </li>
2022-07-24 20:50:28 +08:00
<li> new: use/support of C++11 features (e.g. \\c std::function<> and lambda functions in JKQTPXFunctionLineGraph / JKQTPYFunctionLineGraph )</li>
<li> new: \ref jkqtpinterfaceopencv "optional OpenCV interface" </li>
<li> new: \ref jkqtpinterfacecimg "optional CImg interface" </li>
<li> new: \ref jkqtpplotter_styling "Styling System for JKQTPlotter" </li>
<li> new: added debugging option, which surrounds different regions with visible rectangles (JKQTBasePlotter::enableDebugShowRegionBoxes() ) </li>
<li> new: frames (plot viewport, key/legend ...) may be rounded off at the corners</li>
<li> new: diverse new styling options (default font name/size ...)</li>
<li> new: additionl options for styling coordinate axes</li>
2022-07-24 20:50:28 +08:00
<li> new: Mix-In classes to unify plot styleing functions (setters/getters) in all graphs </li>
<li> new: additional options for graph filling (color gradients, textures, ...) as provided by QBrush </li>
<li> new: added a general feature to JKQTPPlotElement which allows to show a graph in a highlighted state (if supported by the derived graph class!) </li>
<li> new: JKQTPXYParametrizedScatterGraph: added functors to transform column values into symbol type+size and line-width to give even more control </li>
<li> 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 </li>
<li> new: user-interaction tool that measures distances and angles when mouse is dragged, while mouse button is pressed), see: jkqtpmdaRuler </li>
<li> new: advanced styling options for boxplots + example for the styling: \ref JKQTPlotterBoxplotStyling </li>
<li> new: notched boxplots, see: \ref JKQTPlotterBoxplotStyling </li>
<li> new: several new plot symbols, see: JKQTPGraphSymbols </li>
<li> new: Statistics library with functions to calculate histograms, regression, kernel density estimates, ... see: \ref jkqtptools_math_statistics </li>
<li> new: iterator interface and improved documentation for JKQTPDatastore </li>
<li> new: violin plots (see \ref JKQTPlotterViolinplotGraphs ) </li>
<li> changed: removed old selection-code and replaced by general highlighting feature </li>
<li> changed: JKQTPStepHorizontalGraph has been renamed to JKQTPSpecialLineHorizontalGraph (vertical variants also) and have gained additional features (baseline for filling and drawing of symbols) </li>
<li> changed: filled curve graphs (e.g. JKQTPSpecialLineHorizontalGraph) are now merely a specializedly initialized JKQTPSpecialLineHorizontalGraph </li>
<li> removed: Removed datarange-feature </li>
<li> update: \ref JKQTPLOTTER_USERINTERACTION "reworked user interactions API" </li>
<li> update: \ref jkqtplotter_basegraphserrors "reworked error indicator base classes" </li>
<li> 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 \ref JKQTPlotterContourPlot </li>
<li> fixed: colorbars at top were positioned over the plot label </li>
<li> fixed: RGB-image plots now work properly with inverted axes (image is inverted, befor image was not shown at all) </li>
</ul></li>
<li> Updates to JKQTMathText:
<ul>
<li> new: slanted fractions (<code>\\sfrac{}{}</code>, <code>\\stfrac{}{}</code>) </li>
2022-07-24 20:50:28 +08:00
<li> update/fix: several general improvements and bugfixes </li>
<li> update/fix: improved error handling </li>
<li> update: updated contained version of STIX fonts, better handling of different STIX versions </li>
<li> update: improved documentation</li>
</ul></li>
</ul>
2019-11-24 20:22:10 +08:00
\subsection page_whatsnew_V2019_11_DOWNLOAD v2019.11: Download
This release is available from<ul>
<li> Source code branch: <a href="https://github.com/jkriege2/JKQtPlotter/tree/v2019.11">https://github.com/jkriege2/JKQtPlotter/tree/v2019.11</a>
<li> Latest Release/Tag: <a href="https://github.com/jkriege2/JKQtPlotter/releases/tag/v2019.11.1">https://github.com/jkriege2/JKQtPlotter/releases/tag/v2019.11.1</a> (2019-Dec-05)
</ul>
2019-05-18 02:46:52 +08:00
\section page_whatsnew_V2018_08 v2018.08: Minor Modifications (Final QuickFit3-compatible Version)
2019-05-18 02:46:52 +08:00
\subsection page_whatsnew_V2018_08_OVERVIEW v2018.08: Overview
This is the final version of JKQTPlotter, which is still compatible with the <a href="https://github.com/jkriege2/QuickFit3">QuickFit 3.0</a> code base. It contains minor changes as compared to \ref page_whatsnew_V2015_10 "v2015.10"<ul>
<li> new: added Qt data model to switch graphs on/off
<li> update: some improvements to test programs
</ul>
2019-05-18 02:46:52 +08:00
\subsection page_whatsnew_V2018_08_DOWNLOAD v2018.08: Download
This release is available from<ul>
<li> Source code branch: <a href="https://github.com/jkriege2/JKQtPlotter/tree/v2018.08">https://github.com/jkriege2/JKQtPlotter/tree/v2018.08</a>
<li> Latest Release/Tag: <a href="https://github.com/jkriege2/JKQtPlotter/releases/tag/v2018.08">https://github.com/jkriege2/JKQtPlotter/releases/tag/v2018.08</a> (2018-Aug-19)
</ul>
2019-05-18 02:46:52 +08:00
\section page_whatsnew_V2015_10 v2015.10: Initial Release
2019-05-18 02:46:52 +08:00
\subsection page_whatsnew_V2015_10_OVERVIEW v2015.10: Overview
This is the initial release of the library. It was developed initially as part of <a href="https://github.com/jkriege2/QuickFit3">QuickFit 3.0</a> and then separated out into a separate repository.
2019-05-18 02:46:52 +08:00
\subsection page_whatsnew_V2015_10_DOWNLOAD v2015.10: Download
This release is available from<ul>
<li> Source code branch: <a href="https://github.com/jkriege2/JKQtPlotter/tree/v2015.10">https://github.com/jkriege2/JKQtPlotter/tree/v2015.10</a>
<li> Latest Release/Tag: <a href="https://github.com/jkriege2/JKQtPlotter/releases/tag/v2015.10">https://github.com/jkriege2/JKQtPlotter/releases/tag/v2015.10</a> (2015-Oct-20)
</ul>
2019-12-05 15:33:40 +08:00
*/