JKQTPlotter trunk/v5.0.0
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
Loading...
Searching...
No Matches
jkqtptools.h
1/*
2 Copyright (c) 2008-2024 Jan W. Krieger (<jan@jkrieger.de>)
3
4
5
6 This software is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20
21
22#ifndef JKQTPTOOLS_H_INCLUDED
23#define JKQTPTOOLS_H_INCLUDED
24#include "jkqtplotter/jkqtplotter_imexport.h"
25#include <QString>
26#include <QElapsedTimer>
27#include <QLocale>
28#include <cfloat>
29#include <sys/types.h>
30#include <sys/stat.h>
31#include <errno.h>
32#include <string>
33#include <iostream>
34#include <fstream>
35#include <sstream>
36#include <cstdarg>
37#include <cstdio>
38#include <cstdlib>
39#include <vector>
40#include <ctime>
41#include <cmath>
42#include <limits>
43#include <cstdint>
44#include <stdexcept>
45#include <cctype>
46#include <QColor>
47#include <QFlags>
48#include "jkqtcommon/jkqtpstringtools.h"
49#include "jkqtcommon/jkqtpdebuggingtools.h"
50#include "jkqtcommon/jkqtpmathtools.h"
51#include "jkqtmath/jkqtpalgorithms.h"
52#include "jkqtcommon/jkqtpcodestructuring.h"
53#if __cplusplus >= 202002L
54# include <version>
55#endif
56
57
58
59
60
61class JKQTPEnhancedPainter; // forward
62class JKQTBasePlotter; // forward declaration
63
64
65/** \brief used to specify teh type of graph when calling getPlotStyle()
66 * \ingroup jkqtpplottersupprt
67 */
69 Default, /*!< general graphs */
70 Barchart, /*!< barchart-type graphs */
71 Boxplot, /*!< boxplot-type graphs */
72 Filled, /*!< filled graphs */
73 Impulses, /*!< impulse-type graphs */
74 Geometric, /*!< geometric elements (e.g. rectangles, circles, lines, ...) */
75 Annotation, /*!< annotation elements */
76 FinancialPositive, /*!< financial positive elements */
77 FinancialNegative, /*!< financial negative elements */
78};
79
80/** \brief Styles in which to mark single positions during user actions in JKQTPlotter
81 * \ingroup jkqtpplottersupprt
82 */
84 jkqtpuamtCircle=0, /*!< \brief a small circle around the position to mark */
85 jkqtpuamtCrossHair=1, /*!< \brief a cross-hair to the position to mark */
86 jkqtpuamtCircleAndCrossHair=2, /*!< \brief a cross-hair to the position to mark, with a circle-marker around the actual target (i.e. combines jkqtpuamtCircle and jkqtpuamtCrossHair) */
87};
88
89
90/** \brief convert a JKQTPUserActionMarkerType to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
91 * \ingroup jkqtpplottersupprt
92 *
93 * \see String2JKQTPUserActionMarkerType(), JKQTPUserActionMarkerType
94 */
96/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by JKQTPUserActionMarkerType2String() ) to JKQTPUserActionMarkerType
97 * \ingroup jkqtpplottersupprt
98 *
99 * \see JKQTPUserActionMarkerType2String(), JKQTPUserActionMarkerType
100 */
102
103
104
105/** \brief Availble action this JKQtPlotter can perform when mouse events occur.
106 * This allows you to e.g. draw rectangles or lines over the plot and receive a signal, when the drawing finishes
107 * \ingroup jkqtpplottersupprt
108
109 */
111 jkqtpmdaPanPlotOnMove=0, /*!< \brief the user can drag the current plot window while keeping the left mouse-button pushed down (=panning), the new widow is applied/displayed whenever the mouse moves \image html drag_viewport.gif "Drag the Plot Viewport" */
112 jkqtpmdaPanPlotOnRelease, /*!< \brief the user can drag the current plot window while keeping the left mouse-button pushed down (=panning), the new widow is applied/displayed when the left mouse button is released */
113 jkqtpmdaZoomByRectangle, /*!< \brief draw a rectangle and when finish zoom to that rectangle */
114 jkqtpmdaDrawRectangleForEvent, /*!< \brief draw a rectangle and when finished execute the signal JKQTPlotter::userRectangleFinished() \image html draw_rectangle.gif "Draw Rectangle User-Action" */
115 jkqtpmdaDrawCircleForEvent, /*!< \brief draw a circle and when finished execute the signal JKQTPlotter::userCircleFinished() \image html draw_circle.gif "Draw Circle User-Action" */
116 jkqtpmdaDrawEllipseForEvent, /*!< \brief draw an ellipse and when finished execute the signal JKQTPlotter::userEllipseFinished() \image html draw_ellipse.gif "Draw Ellipse User-Action" */
117 jkqtpmdaDrawLineForEvent, /*!< \brief draw a line and when finished execute the signal JKQTPlotter::userLineFinished() \image html draw_line.gif "Draw Lines User-Action" */
118 jkqtpmdaScribbleForEvents, /*!< \brief let the user scribble on the plot (left mouse button is kept pressed) and call JKQTPlotter::userScribbleClick() for each new position */
119 jkqtpmdaToolTipForClosestDataPoint, /*!< \brief shows a tooltip with data of the closest data-point in the plot \image html tooltiptool.gif */
120 jkqtpmdaRuler, /*!< \brief shows a ruler over the plot, which measures delta X, delta Y and sqrt(dx^2+dy^2) \image html rulertool.gif */
121};
122
123
124/** \brief convert a JKQTPMouseDragActions to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
125 * \ingroup jkqtpplottersupprt
126 *
127 * \see String2JKQTPMouseDragActions(), JKQTPMouseDragActions
128 */
130/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by JKQTPMouseDragActions2String() ) to JKQTPMouseDragActions
131 * \ingroup jkqtpplottersupprt
132 *
133 * \see JKQTPMouseDragActions2String(), JKQTPMouseDragActions
134 */
136
137/** \brief actions that can be bound to a double-click of the mouse
138 * \ingroup jkqtpplottersupprt
139 */
141 jkqtpdcaClickZoomsIn=0, /*!< \brief a double-click zooms into the plot at the current mouse location */
142 jkqtpdcaClickZoomsOut, /*!< \brief a double-click zooms out of the plot at the current mouse location */
143 jkqtpdcaClickOpensContextMenu, /*!< \brief a double-click opens the context menu */
144 jkqtpdcaClickOpensSpecialContextMenu, /*!< \brief a double-click opens the special context menu \see setSpecialContextMenu() */
145 jkqtpdcaClickMovesViewport, /*!< \brief a double-click centers the x/y-range around the clicked position */
146};
147
148/** \brief convert a JKQTPMouseDoubleClickActions to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
149 * \ingroup jkqtpplottersupprt
150 *
151 * \see String2JKQTPMouseDoubleClickActions(), JKQTPMouseDoubleClickActions
152 */
154/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by JKQTPMouseDoubleClickActions2String() ) to JKQTPMouseDoubleClickActions
155 * \ingroup jkqtpplottersupprt
156 *
157 * \see JKQTPMouseDoubleClickActions2String(), JKQTPMouseDoubleClickActions
158 */
160
161/** \brief actions that can be bound to a mouse wheel event
162 * \ingroup jkqtpplottersupprt
163 */
165 jkqtpmwaZoomByWheel=0, /*!< \brief use the mouse-wheel for zooming */
166 jkqtpmwaPanByWheel, /*!< \brief use the mouse-wheel for panning the plot */
167 jkqtpmwaZoomByWheelAndTrackpadPan, /*!< \brief use the mouse-wheel for zooming. In addition, this tries to recognize track-pad pan gestures and applies them. \note This is needed, because Qt converts track-pad zoom AND pan gestures to wheelEvents, but does not provide the source. Therefore a heuristics is required to interpret both! */
168 jkqtpmwaZoomFixedMouseByWheel, /*!< \brief use the mouse-wheel for zooming, while keeping the position under the mouse cursor fixed (Google Maps style zoom) */
169 jkqtpmwaZoomFixedMouseByWheelAndTrackpadPan, /*!< \brief use the mouse-wheel for zooming with fixed mouse position, and track-pad pan gesture recognition. \note This is needed, because Qt converts track-pad zoom AND pan gestures to wheelEvents, but does not provide the source. Therefore a heuristics is required to interpret both! */
170};
171
172/** \brief convert a JKQTPMouseWheelActions to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
173 * \ingroup jkqtpplottersupprt
174 *
175 * \see String2JKQTPMouseWheelActions(), JKQTPMouseWheelActions
176 */
178/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by JKQTPMouseWheelActions2String() ) to JKQTPMouseWheelActions
179 * \ingroup jkqtpplottersupprt
180 *
181 * \see JKQTPMouseWheelActions2String(), JKQTPMouseWheelActions
182 */
184
185/** \brief Availble action this JKQtPlotter can perform when mouse events occur.
186 * This allows you to e.g. draw rectangles or lines over the plot and receive a signal, when the drawing finishes
187 * \ingroup jkqtpplottersupprt
188
189 */
191 jkqtpmmaToolTipForClosestDataPoint /*!< \brief shows a tooltip with data of the closest data-point in the plot \image html tooltiptool.gif */
192};
193
194
195/** \brief convert a JKQTPMouseDragActions to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
196 * \ingroup jkqtpplottersupprt
197 *
198 * \see String2JKQTPMouseDragActions(), JKQTPMouseDragActions
199 */
201/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by JKQTPMouseDragActions2String() ) to JKQTPMouseDragActions
202 * \ingroup jkqtpplottersupprt
203 *
204 * \see JKQTPMouseDragActions2String(), JKQTPMouseDragActions
205 */
207
208/** \brief modes for the context menu
209 * \ingroup jkqtpplottersupprt
210 */
212 jkqtpcmmStandardContextMenu=0, /*!< \brief only show the standard context menu \image html zoomin_mouse_contextmenu.gif "Zooming with the mouse" */
213 jkqtpcmmSpecialContextMenu, /*!< \brief only show the special context menu \see setSpecialContextMenu() */
214 jkqtpcmmStandardAndSpecialContextMenu, /*!< \brief show the standard context menu, with the special context menu incorporated \see setSpecialContextMenu() */
215 jkqtpcmmNoContextMenu, /*!< \brief don't show a context menu at all */
216};
217
218/** \brief convert a JKQTPContextMenuModes to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
219 * \ingroup jkqtpplottersupprt
220 *
221 * \see String2JKQTPContextMenuModes(), JKQTPContextMenuModes
222 */
224/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by JKQTPContextMenuModes2String() ) to JKQTPContextMenuModes
225 * \ingroup jkqtpplottersupprt
226 *
227 * \see JKQTPContextMenuModes2String(), JKQTPContextMenuModes
228 */
230
231/** \brief data structure for storage of assigned JKQTPMouseDragActions \see JKQTPMouseDragActionsHashMapIterator
232 * \ingroup jkqtpplottersupprt */
233typedef QHash<QPair<Qt::MouseButton,Qt::KeyboardModifiers>, JKQTPMouseDragActions> JKQTPMouseDragActionsHashMap;
234/** \brief iterator for JKQTPMouseDragActionsHashMap \see JKQTPMouseDragActionsHashMap
235 * \ingroup jkqtpplottersupprt */
236typedef JKQTPMouseDragActionsHashMap::const_iterator JKQTPMouseDragActionsHashMapIterator;
237
238/** \brief data structure for storage of assigned JKQTPMouseWheelActions \see JKQTPMouseWheelActionsHashMapIterator
239 * \ingroup jkqtpplottersupprt */
240typedef QHash<Qt::KeyboardModifiers, JKQTPMouseWheelActions> JKQTPMouseWheelActionsHashMap;
241/** \brief iterator for JKQTPMouseWheelActionsHashMap \see JKQTPMouseWheelActionsHashMap
242 * \ingroup jkqtpplottersupprt */
243typedef JKQTPMouseWheelActionsHashMap::const_iterator JKQTPMouseWheelActionsHashMapIterator;
244
245/** \brief data structure for storage of assigned JKQTPMouseDoubleClickActions \see JKQTPMouseDoubleClickActionsHashMapIterator
246 * \ingroup jkqtpplottersupprt */
247typedef QHash<QPair<Qt::MouseButton,Qt::KeyboardModifiers>, JKQTPMouseDoubleClickActions> JKQTPMouseDoubleClickActionsHashMap;
248/** \brief iterator for JKQTPMouseDoubleClickActionsHashMap \see JKQTPMouseDoubleClickActionsHashMap
249 * \ingroup jkqtpplottersupprt */
250typedef JKQTPMouseDoubleClickActionsHashMap::const_iterator JKQTPMouseDoubleClickActionsHashMapIterator;
251
252
253/** \brief data structure for storage of assigned JKQTPMouseMoveActions \see JKQTPMouseMoveActionsHashMapIterator
254 * \ingroup jkqtpplottersupprt */
255typedef QHash<Qt::KeyboardModifiers, JKQTPMouseMoveActions> JKQTPMouseMoveActionsHashMap;
256/** \brief iterator for JKQTPMouseMoveActionsHashMap \see JKQTPMouseMoveActionsHashMap
257 * \ingroup jkqtpplottersupprt */
258typedef JKQTPMouseMoveActionsHashMap::const_iterator JKQTPMouseMoveActionsHashMapIterator;
259
260/** \brief Specifies how a fill-color is derived from a given color
261 * \ingroup jkqtpplotter_styling_classes
262
263 */
265public:
267 JKQTPFFCMFullyTransparentColor, /*!< \brief fully transparent color */
268 JKQTPFFCMNoColor=JKQTPFFCMFullyTransparentColor, /*!< \brief fully transparent color */
269 JKQTPFFCMBlack, /*!< \brief fill with black */
270 JKQTPFFCMGrey75, /*!< \brief fill with 75% grey */
271 JKQTPFFCMGrey50, /*!< \brief fill with 50% grey */
272 JKQTPFFCMGrey25, /*!< \brief fill with 25% grey */
273 JKQTPFFCMWhite, /*!< \brief fill with white */
274 JKQTPFFCMBlackTransparent, /*!< \brief fill with black, slightly transparent */
275 JKQTPFFCMGrey75Transparent, /*!< \brief fill with 75% grey, slightly transparent */
276 JKQTPFFCMGrey50Transparent, /*!< \brief fill with 50% grey, slightly transparent */
277 JKQTPFFCMGrey25Transparent, /*!< \brief fill with 25% grey, slightly transparent */
278 JKQTPFFCMWhiteTransparent, /*!< \brief fill with white, slightly transparent */
279 JKQTPFFCMSameColor, /*!< \brief fill with the same color */
280 JKQTPFFCMSameNonTransparentColor, /*!< \brief fill with the same color, but remove any transparency (if any) */
281 JKQTPFFCMSameMoreTransparentColor, /*!< \brief fill with the a partly transparent color */
282 JKQTPFFCMSameEvenMoreTransparentColor, /*!< \brief fill with the a more transparent color than JKQTPFFCMMoreTransparentColor */
283 JKQTPFFCMSameLessTransparentColor, /*!< \brief fill with the a partly transparent color */
284 JKQTPFFCMSameEvenLessTransparentColor, /*!< \brief fill with the a more transparent color than JKQTPFFCMLessTransparentColor*/
285 JKQTPFFCMInvertedColor, /*!< \brief fill with the inverted color */
286 JKQTPFFCMInvertedTransparentColor, /*!< \brief fill with the inverted color, slightly transparent */
287 JKQTPFFCMInvertedNonTransparentColor, /*!< \brief fill with the inverted color, non-transparent (even if the basecolor had some transparency) */
288 JKQTPFFCMLighterColor, /*!< \brief fill with the a lighter color */
289 JKQTPFFCMEvenLighterColor, /*!< \brief fill with the an even lighter color than JKQTPFFCMLighterColor */
290 JKQTPFFCMDarkerColor, /*!< \brief fill with the a darker color */
291 JKQTPFFCMEvenDarkerColor, /*!< \brief fill with the an even darker color than JKQTPFFCMDarkerColor */
292 JKQTPFFCMLighterAndTransparentColor, /*!< \brief fill with the a lighter color, that is in addition a bit transparent */
293 JKQTPFFCMEvenLighterAndTransparentColor, /*!< \brief fill with the an even lighter color than JKQTPFFCMLighterColor, that is in addition a bit transparent */
294 JKQTPFFCMDarkerAndTransparentColor, /*!< \brief fill with the a darker color, that is in addition a bit transparent */
295 JKQTPFFCMEvenDarkerAndTransparentColor, /*!< \brief fill with the an even darker color than JKQTPFFCMDarkerColor, that is in addition a bit transparent */
296 JKQTPFFCMLighterAndNonTransparentColor, /*!< \brief fill with the a lighter color, that is non-transparent (even if the basecolor had some transparency) */
297 JKQTPFFCMEvenLighterAndNonTransparentColor, /*!< \brief fill with the an even lighter color than JKQTPFFCMLighterColor, that is non-transparent (even if the basecolor had some transparency) */
298 JKQTPFFCMDarkerAndNonTransparentColor, /*!< \brief fill with the a darker color, that is non-transparent (even if the basecolor had some transparency) */
299 JKQTPFFCMEvenDarkerAndNonTransparentColor, /*!< \brief fill with the an even darker color than JKQTPFFCMDarkerColor, that is non-transparent (even if the basecolor had some transparency) */
300
302 };
303 /** \brief for compatibility: use one of several predefined settings to iitialize object */
305 /** \brief initialize object from a string (calls fromString() ) */
306 JKQTPColorDerivationMode(const QString& mode);
307
316 /** \brief specifies how the color should change */
318 /** \brief replacement color when colorModification==ColorChangeMode::ReplaceColor */
320 /** \brief strength of colorModification-settings, such as ColorChangeMode::DarkerColor or ColorChangeMode::LighterColor */
322
329
330 /** \brief specifies how the transparency of the color chould change */
332 /** \brief target transparency (0:non-transparennt .. 1:fully-transparent, i.e. 1-alphaF!!!) for TransparencyChangeMode::ReplaceTransparency */
334 /** \brief strength of transparencyModification-settings, such as TransparencyChangeMode::MoreTransparent or TransparencyChangeMode::LessTransparent */
336
337 /** \brief convert object contents into a string */
338 QString toString() const;
339 /** \brief read values from a string */
340 static JKQTPColorDerivationMode fromString(const QString& mode);
341 /** \brief apply the modifications encoded in this object to a given color */
342 QColor apply(const QColor& basecolor) const;
343
344 /** \brief compares two objects for equality */
345 bool operator==(const JKQTPColorDerivationMode& other) const;
346
347 /** \brief determines whether the current object equals a default-initialized object with the given parameter, i.e. this is equivalent to calling \code operato==(JKQTPColorDerivationMode(other)) \endcode */
348 bool operator==(const PredefinedModes& other) const;
349
350};
351
352/** \brief use a JKQTPColorDerivationMode to derive a color from \a col as specified
353 * \ingroup jkqtpplotter_styling_classes
354 *
355 * \param mode the mode of how to modify the given color \a basecolor
356 * \param basecolor the color in which to base the derivation
357 *
358 * \see JKQTPColorDerivationMode
359 */
361
362/** \brief construct a QColor, based on the given \a color, but with alpha set to the specified value \a alphaF
363 * \ingroup jkqtpplotter_styling_classes
364 * \see QColorWithAlpha()
365 */
366inline QColor QColorWithAlphaF(const QColor& color, qreal alphaF) {
367 QColor c=color;
368 c.setAlphaF(alphaF);
369 return c;
370}
371
372/** \brief construct a QColor, based on the given \a color, but with alpha set to the specified value \a alpha
373 * \ingroup jkqtpplotter_styling_classes
374 * \see QColorWithAlphaF()
375 */
376inline QColor QColorWithAlpha(const QColor& color, int alpha) {
377 QColor c=color;
378 c.setAlpha(alpha);
379 return c;
380}
381
382/** \brief convert a JKQTPColorDerivationMode to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>
383 * \ingroup jkqtpplotter_styling_classes
384 *
385 * \see String2JKQTPColorDerivationMode(), JKQTPColorDerivationMode
386 */
388/** \brief convert a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> (created by JKQTPColorDerivationMode2String() ) to JKQTPColorDerivationMode
389 * \ingroup jkqtpplotter_styling_classes
390 *
391 * \see JKQTPColorDerivationMode2String(), JKQTPColorDerivationMode
392 */
394
395
396/** \brief drawing flags for a coordinate axis
397 * \ingroup jkqtpplottersupprt
398 *
399 * \note This enum provides the elements for \ref JKQTPCADrawMode, which is actually used
400 * throughout the code.
401 *
402 * \see JKQTPCADrawMode, JKQTPCoordinateAxisStyle
403*/
405 JKQTPCADMLine=0x01, /*!< \brief draw axis as thick line \image html axisstyle/JKQTPCADMLine.png */
406 JKQTPCADMTicks=0x02, /*!< \brief draw axis ticks \image html axisstyle/JKQTPCADMTicks.png */
407 JKQTPCADMTickLabels=0x04, /*!< \brief draw axis tick labels \image html axisstyle/JKQTPCADMTickLabels.png */
408 JKQTPCADMAxisLabel=0x08, /*!< \brief draw axis axis Label \image html axisstyle/JKQTPCADMAxisLabel.png */
409
410 JKQTPCADMMaxArrow=0x0100, /*!< \brief an open arrow at the max-end of the axis \image html axisstyle/JKQTPCADMMaxArrow.png */
411 JKQTPCADMMaxFilledArrow=0x0200, /*!< \brief draw a filled arrow at the max-end of the axis \image html axisstyle/JKQTPCADMMaxFilledArrow.png */
412 JKQTPCADMMinArrow=0x1000, /*!< \brief an open arrow at the end of the axis at the min-end of the axis \image html axisstyle/JKQTPCADMMinArrow.png */
413 JKQTPCADMMinFilledArrow=0x2000, /*!< \brief draw a filled arrow at the min-end of the axis \image html axisstyle/JKQTPCADMMinFilledArrow.png */
414
415 JKQTPCADMLineTicksTickLabels=JKQTPCADMLine|JKQTPCADMTicks|JKQTPCADMTickLabels, /*!< \brief draw axis with ticks, line and tick labels \image html axisstyle/JKQTPCADMLineTicksTickLabels.png */
416 JKQTPCADMLineTicks=JKQTPCADMLine|JKQTPCADMTicks, /*!< \brief draw axis with ticks and line \image html axisstyle/JKQTPCADMLineTicks.png */
417 JKQTPCADMTicksTickLabelsAxisLabel=JKQTPCADMTicks|JKQTPCADMTickLabels|JKQTPCADMAxisLabel, /*!< \brief draw axis with ticks, tick labels and axisLabel \image html axisstyle/JKQTPCADMTicksTickLabelsAxisLabel.png */
418 JKQTPCADMTicksTickLabels=JKQTPCADMTicks|JKQTPCADMTickLabels, /*!< \brief draw axis with ticks and tick labels \image html axisstyle/JKQTPCADMTicksTickLabels.png */
419 JKQTPCADMTickLabelsAxisLabel=JKQTPCADMTickLabels|JKQTPCADMAxisLabel, /*!< \brief draw axis tick labels and axisLabel \image html axisstyle/JKQTPCADMTickLabelsAxisLabel.png */
420 JKQTPCADMnone=0x0000, /*!< \brief draw no axis \image html axisstyle/JKQTPCADMnone.png */
421 JKQTPCADMcomplete=JKQTPCADMLine|JKQTPCADMTicks|JKQTPCADMTickLabels|JKQTPCADMAxisLabel, /*!< \brief draw axis withline, ticks, ticklabels and axis label \image html axisstyle/JKQTPCADMcomplete.png */
422 JKQTPCADMcompleteMaxArrow=JKQTPCADMcomplete|JKQTPCADMMaxFilledArrow, /*!< \brief draw axis withline, ticks, ticklabels and axis label and an arrow pointing to the max-side of the axis \image html axisstyle/JKQTPCADMcompleteMaxArrow.png */
423 JKQTPCADMcompleteMinMaxArrow=JKQTPCADMcomplete|JKQTPCADMMaxFilledArrow|JKQTPCADMMinFilledArrow, /*!< \brief draw axis withline, ticks, ticklabels and axis label and arrows pointing to the min and max side of the axis \image html axisstyle/JKQTPCADMcompleteMinMaxArrow.png */
424};
425/** \brief drawing mode for a coordinate axis
426 * \ingroup jkqtplotter_basegraphserrors
427 *
428 * \qFlagsNote{JKQTPCADrawMode,JKQTPCADrawModeElements}
429 *
430 * \see JKQTPCADrawModeElements, JKQTPCoordinateAxisStyle
431 */
433Q_DECLARE_OPERATORS_FOR_FLAGS(JKQTPCADrawMode)
434
435
436
437
438/** \brief converts a JKQTPCADrawMode variable into a human-readable string
439 * \ingroup jkqtpplottersupprt
440 */
442
443/** \brief converts a string into a JKQTPCADrawMode
444 * \ingroup jkqtpplottersupprt
445 */
447
448
449/** \brief display mode for the (axis) labels
450 * \ingroup jkqtpplottersupprt */
452 JKQTPCALTdefault=0, /*!< \brief simply print the numbers \image html axisstyle/JKQTPCALTdefault.png */
453 JKQTPCALTscientific, /*!< \brief print the numbers in scientific notation, e.g. \c "1.23e-4" \image html axisstyle/JKQTPCALTscientific.png */
454 JKQTPCALTexponentCharacter, /*!< \brief print the numbers and show a unit character, i.e. 5&mu; for \f$ 5\cdot 10^{-6} \f$ , \c 3k for \f$ 3\cdot 10^3 \f$ ... \image html axisstyle/JKQTPCALTexponentCharacter.png */
455 JKQTPCALTexponent, /*!< \brief show numbers in exponential for, e.g. \f$ 3\cdot 10^5 \f$ ... \image html axisstyle/JKQTPCALTexponent.png */
456 JKQTPCALTprintf, /*!< \brief generate axis label from an arbitrary "printf" formatting string (see e.g. https://en.wikipedia.org/wiki/Printf_format_string ). The first data parameter is the tick value as \c double an the second is tickUnitName as string. The following image shows an example for \c "y=%+.2f": \image html axisstyle/JKQTPCALTprintf.png */
457 JKQTPCALTdate, /*!< \brief show numbers as dates \image html axisstyle/JKQTPCALTdate.png */
458 JKQTPCALTtime, /*!< \brief show numbers as times \image html axisstyle/JKQTPCALTtime.png*/
459 JKQTPCALTdatetime, /*!< \brief show numbers as times \image html axisstyle/JKQTPCALTdatetime.png */
460 JKQTPCALTfrac, /*!< \brief show numbers as fraction, the number is first rounded to the given precision and then a fraction is calculated and displayed like \f$ \frac{1}{2} \f$ \image html axisstyle/JKQTPCALTfrac.png */
461 JKQTPCALTslashfrac, /*!< \brief show numbers as fraction, the number is first rounded to the given precision and then a fraction is calculated and displayed like \c 1/2 \image html axisstyle/JKQTPCALTslashfrac.png */
462 JKQTPCALTsfrac, /*!< \brief show numbers as fraction, the number is first rounded to the given precision and then a fraction is calculated and displayed using \c \\sfrac{1}{2} \image html axisstyle/JKQTPCALTsfrac.png */
463 JKQTPCALTintfrac, /*!< \brief show numbers as integral+fraction, the number is first rounded to the given precision and then a fraction is calculated and displayed like \f$ -3\frac{1}{2} \f$ \image html axisstyle/JKQTPCALTintfrac.png */
464 JKQTPCALTintslashfrac, /*!< \brief show numbers as integral+fraction, the number is first rounded to the given precision and then a fraction is calculated and displayed like \c 1/2 \image html axisstyle/JKQTPCALTintslashfrac.png */
465 JKQTPCALTintsfrac, /*!< \brief show numbers as integral+fraction, the number is first rounded to the given precision and then a fraction is calculated and displayed using \c \\sfrac{1}{2} \image html axisstyle/JKQTPCALTintsfrac.png */
466#if defined(__cpp_lib_format) || DOXYGEN
467 JKQTPCALTformat, /*!< \brief generate axis label from an arbitrary "std::format" formatting string (see e.g. https://en.cppreference.com/w/cpp/utility/format/formatter#Standard_format_specification ). The first data parameter is the tick value as \c double an the second is tickUnitName as string. The following image shows an example for \c "\\texttt{{ y={:*^+8.1f}}}": \image html axisstyle/JKQTPCALTformat.png
468 \b NOte: This option is only available for C++20 and above, use the CMake option \c JKQtPlotter_ENABLED_CXX20=ON if your compiler supports this. */
469#endif
472};
473
474
475
476/** \brief mode of the axis ticks
477 * \ingroup jkqtpplottersupprt */
479 JKQTPLTMLinOrPower=0, /*!< \brief linear, or log, depending on whether the axis is log \image html axisstyle/JKQTPLTMLinOrPower.png */
480 JKQTPLTMLin, /*!< \brief always linear (even for log-axes) \image html axisstyle/JKQTPLTMLin.png */
481 JKQTPLTMPower, /*!< \brief powers (of the log-base) \image html axisstyle/JKQTPLTMPower.png */
482
484};
485
486/** \brief converts a JKQTPLabelTickMode variable into a human-readable string
487 * \ingroup jkqtpplottersupprt
488 */
490
491/** \brief converts a string into a JKQTPLabelTickMode
492 * \ingroup jkqtpplottersupprt
493 */
495
496
497/** \brief converts a JKQTPCALabelType variable into a human-readable string
498 * \ingroup jkqtpplottersupprt
499 */
501
502/** \brief converts a string into a JKQTPCALabelType
503 * \ingroup jkqtpplottersupprt
504 */
506
507/** \brief position of the axis labels
508 * \ingroup jkqtpplottersupprt
509 */
511 JKQTPLabelMin=0, /*!< \brief the axis label is near the min value of the axis (left/bottom)
512 \image html labelstyles/JKQTPLabelMin.png
513 \image html labelstyles/JKQTPLabelMin_zeroaxis.png */
514 JKQTPLabelMax, /*!< \brief the axis label is near the max value of the axis (right/top)
515 \image html labelstyles/JKQTPLabelMax.png
516 \image html labelstyles/JKQTPLabelMax_zeroaxis.png */
517 JKQTPLabelCenter, /*!< \brief the label is at the center of the axis
518 \image html labelstyles/JKQTPLabelCenter.png
519 \image html labelstyles/JKQTPLabelCenter_zeroaxis.png */
520 JKQTPLabelMinBesides, /*!< \brief the axis label is near the min value of the axis (left/bottom), but besides the axis tip
521 \image html labelstyles/JKQTPLabelMinBesides.png
522 \image html labelstyles/JKQTPLabelMinBesides_zeroaxis.png */
523 JKQTPLabelMaxBesides, /*!< \brief the axis label is near the max value of the axis (right/top), but besides the axis tip
524 \image html labelstyles/JKQTPLabelMaxBesides.png
525 \image html labelstyles/JKQTPLabelMaxBesides_zeroaxis.png */
527};
528
529
530/** \brief converts a JKQTPLabelPosition variable into a human-readable string
531 * \ingroup jkqtpplottersupprt
532 */
534
535/** \brief converts a string into a JKQTPLabelPosition
536 * \ingroup jkqtpplottersupprt
537 */
539
540/** \brief position of the key
541 * \ingroup jkqtpplottersupprt
542 *
543 * \see JKQTPKeyPosition, JKQTPKeyStyle, JKQTPKeyBase, JKQTPGetTypicalKeyPositions()
544 */
546 JKQTPKeyInside =0x0001, /*!< \brief key is drawn inside the plot rectangle */
547 JKQTPKeyOutsideTop =0x0010, /*!< \brief key is drawn outside and above of the plot rectangle */
548 JKQTPKeyOutsideBottom=0x0020, /*!< \brief key is drawn outside and below of the plot rectangle */
549 JKQTPKeyOutsideLeft =0x0040, /*!< \brief key is drawn outside and on the left of the plot rectangle */
550 JKQTPKeyOutsideRight =0x0080, /*!< \brief key is drawn outside and on the rightof the plot rectangle */
551 JKQTPKeyLeft =0x0100, /*!< \brief key is drawn to the left */
552 JKQTPKeyHCenter =0x0200, /*!< \brief key is drawn to the horizontal center */
553 JKQTPKeyRight =0x0400, /*!< \brief key is drawn to the right */
554 JKQTPKeyTop =0x1000, /*!< \brief key is drawn to the top */
555 JKQTPKeyVCenter =0x2000, /*!< \brief key is drawn to the vertical center */
556 JKQTPKeyBottom =0x4000, /*!< \brief key is drawn to the bottom */
557
558
559 JKQTPKeyOutsideTopRight=JKQTPKeyOutsideTop|JKQTPKeyBottom|JKQTPKeyRight, /*!< \brief the key is positioned above the graph, on the right
560 \image html keypositions/JKQTPKeyOutsideTopRight.png */
561 JKQTPKeyOutsideTopLeft=JKQTPKeyOutsideTop|JKQTPKeyBottom|JKQTPKeyLeft, /*!< \brief the key is positioned above the graph, on the left
562 \image html keypositions/JKQTPKeyOutsideTopLeft.png */
563 JKQTPKeyOutsideTopCenter=JKQTPKeyOutsideTop|JKQTPKeyBottom|JKQTPKeyHCenter, /*!< \brief the key is positioned above the graph, in the center
564 \image html keypositions/JKQTPKeyOutsideTopCenter.png */
565 JKQTPKeyOutsideBottomLeft=JKQTPKeyOutsideBottom|JKQTPKeyTop|JKQTPKeyLeft, /*!< \brief the key is positioned below the graph, on the left
566 \image html keypositions/JKQTPKeyOutsideBottomLeft.png */
567 JKQTPKeyOutsideBottomRight=JKQTPKeyOutsideBottom|JKQTPKeyTop|JKQTPKeyRight, /*!< \brief the key is positioned below the graph, on the right
568 \image html keypositions/JKQTPKeyOutsideBottomRight.png */
569 JKQTPKeyOutsideBottomCenter=JKQTPKeyOutsideBottom|JKQTPKeyTop|JKQTPKeyHCenter, /*!< \brief the key is positioned below the graph, in the center
570 \image html keypositions/JKQTPKeyOutsideBottomCenter.png */
571 JKQTPKeyOutsideLeftTop=JKQTPKeyOutsideLeft|JKQTPKeyTop|JKQTPKeyRight, /*!< \brief the key is positioned on the left side of the graph, towards the top
572 \image html keypositions/JKQTPKeyOutsideLeftTop.png */
573 JKQTPKeyOutsideLeftCenter=JKQTPKeyOutsideLeft|JKQTPKeyVCenter|JKQTPKeyRight, /*!< \brief the key is positioned on the left side of the graph, in the center
574 \image html keypositions/JKQTPKeyOutsideLeftCenter.png */
575 JKQTPKeyOutsideLeftBottom=JKQTPKeyOutsideLeft|JKQTPKeyBottom|JKQTPKeyRight, /*!< \brief the key is positioned on the left side of the graph, towards the Bottom
576 \image html keypositions/JKQTPKeyOutsideLeftBottom.png */
577 JKQTPKeyOutsideRightBottom=JKQTPKeyOutsideRight|JKQTPKeyBottom|JKQTPKeyLeft, /*!< \brief the key is positioned on the right side of the graph, towards the bottom
578 \image html keypositions/JKQTPKeyOutsideRightBottom.png */
579 JKQTPKeyOutsideRightCenter=JKQTPKeyOutsideRight|JKQTPKeyVCenter|JKQTPKeyLeft, /*!< \brief the key is positioned on the right side of the graph, in the center
580 \image html keypositions/JKQTPKeyOutsideRightCenter.png */
581 JKQTPKeyOutsideRightTop=JKQTPKeyOutsideRight|JKQTPKeyTop|JKQTPKeyLeft, /*!< \brief the key is positioned on the left side of the graph, towards the top
582 \image html keypositions/JKQTPKeyOutsideRightTop.png */
583 JKQTPKeyInsideTopRight=JKQTPKeyInside|JKQTPKeyTop|JKQTPKeyRight, /*!< \brief the key is positioned inside on the top-right
584 \image html keypositions/JKQTPKeyInsideTopRight.png */
585 JKQTPKeyInsideTopLeft=JKQTPKeyInside|JKQTPKeyTop|JKQTPKeyLeft, /*!< \brief the key is positioned inside on the top-left
586 \image html keypositions/JKQTPKeyInsideTopLeft.png */
587 JKQTPKeyInsideBottomLeft=JKQTPKeyInside|JKQTPKeyBottom|JKQTPKeyLeft, /*!< \brief the key is positioned inside on the bottom-left
588 \image html keypositions/JKQTPKeyInsideBottomLeft.png */
589 JKQTPKeyInsideBottomRight=JKQTPKeyInside|JKQTPKeyBottom|JKQTPKeyRight, /*!< \brief the key is positioned inside on the bottom-right
590 \image html keypositions/JKQTPKeyInsideBottomRight.png */
591 JKQTPKeyInsideTop=JKQTPKeyInside|JKQTPKeyTop|JKQTPKeyHCenter, /*!< \brief the key is positioned inside on the top-center
592 \image html keypositions/JKQTPKeyInsideTop.png */
593 JKQTPKeyInsideBottom=JKQTPKeyInside|JKQTPKeyBottom|JKQTPKeyHCenter, /*!< \brief the key is positioned inside on the bottom-center
594 \image html keypositions/JKQTPKeyInsideBottom.png */
595 JKQTPKeyInsideLeft=JKQTPKeyInside|JKQTPKeyVCenter|JKQTPKeyLeft, /*!< \brief the key is positioned inside on the center-left
596 \image html keypositions/JKQTPKeyInsideLeft.png */
597 JKQTPKeyInsideRight=JKQTPKeyInside|JKQTPKeyVCenter|JKQTPKeyRight, /*!< \brief the key is positioned inside on the center-right
598 \image html keypositions/JKQTPKeyInsideRight.png */
600
601};
602/** \brief position of the key
603 * \ingroup jkqtpplottersupprt
604 *
605 * \qFlagsNote{JKQTPKeyPosition,JKQTPKeyPositions}
606 *
607 * \see JKQTPKeyPositions, JKQTPKeyStyle, JKQTPKeyBase, JKQTPGetTypicalKeyPositions()
608 */
610Q_DECLARE_OPERATORS_FOR_FLAGS(JKQTPKeyPosition)
611
612/** \brief returns a list of typical positions of the main key
613 * \ingroup jkqtpplottersupprt
614 *
615 * \qFlagsNote{JKQTPKeyPosition,JKQTPKeyPositions}
616 *
617 * \see JKQTPKeyPositions, JKQTPKeyStyle, JKQTPKeyBase
618 */
620
621/** \brief converts a JKQTPLabelPosition variable into a human-readable string
622 * \ingroup jkqtpplottersupprt
623 */
625
626/** \brief converts a string into a JKQTPLabelPosition
627 * \ingroup jkqtpplottersupprt
628 */
630
631/** \brief layout of the key
632 * \ingroup jkqtpplottersupprt
633 */
635 JKQTPKeyLayoutOneColumn=0, /*!< \brief the key consists of one column. This may overflow the available space, use JKQTPKeyLayoutMultiColumn or JKQTPKeyLayoutMultiRow if you have many entries!
636 \image html keylayouts/JKQTPKeyLayout_one_column.png
637 \image html keylayouts/JKQTPKeyLayout_outsidebottom_one_column.png
638 \image html keylayouts/JKQTPKeyLayout_outsideright_one_column.png */
639 JKQTPKeyLayoutOneRow, /*!< \brief the key consists of one row. This may overflow the available space, use JKQTPKeyLayoutMultiColumn or JKQTPKeyLayoutMultiRow if you have many entries!
640 \image html keylayouts/JKQTPKeyLayout_one_row.png
641 \image html keylayouts/JKQTPKeyLayout_outsidebottom_one_row.png
642 \image html keylayouts/JKQTPKeyLayout_outsideright_one_row.png */
643 JKQTPKeyLayoutMultiColumn, /*!< \brief the key items are distributed over multiple columns that fill the available space, (top->bottom, top->bottom, ...)
644 \image html keylayouts/JKQTPKeyLayout_multi_column.png
645 \image html keylayouts/JKQTPKeyLayout_outsidebottom_multi_column.png
646 \image html keylayouts/JKQTPKeyLayout_outsideright_multi_column.png */
647 JKQTPKeyLayoutMultiRow, /*!< \brief the key items are distributed over multiple rows that fill the available space (left->right,left->right,...)
648 \image html keylayouts/JKQTPKeyLayout_multi_row.png
649 \image html keylayouts/JKQTPKeyLayout_outsidebottom_multi_row.png
650 \image html keylayouts/JKQTPKeyLayout_outsideright_multi_row.png */
651
653};
654
655
656
657/** \brief converts a JKQTPKeyLayout variable into a human-readable string
658 * \ingroup jkqtpplottersupprt
659 */
661
662/** \brief converts a String into a JKQTPKeyLayout
663 * \ingroup jkqtpplottersupprt
664 */
666
667
668
669/** \brief used to represent the position of other graphs in \ref jkqtplotter_base_saveprint
670 * \ingroup jkqtpplottersupprt
671 * \internal
672 */
674 /** \brief logic x-position of a graph, relative to the current JKQtPlotter */
675 size_t x;
676 /** \brief logic y-position of a graph, relative to the current JKQtPlotter */
677 size_t y;
678 /** \brief JKQTBasePlotter */
680};
681
682
683
684
685/** \brief specifies the plot styles for the error information, e.g. error bars, boxes, lines ...
686 * \ingroup jkqtplotter_basegraphserrors
687 *
688 * \note This enum provides the elements for \ref JKQTPErrorPlotstyle, which is actually used
689 * throughout the code.
690 *
691 * \see JKQTPErrorPlotstyle, JKQTPXGraphErrorData, JKQTPYGraphErrorData
692 */
694 JKQTPNoError=0x00, /*!< \brief don't show error information \image html errorindicators/JKQTPNoError.png */
695 JKQTPErrorSimpleBars=0x01, /*!< \brief simplified error bars for each data point \image html errorindicators/JKQTPErrorSimpleBars.png */
696 JKQTPErrorLines=0x04, /*!< \brief a second and third graph line above and below the actual data which indicates the error value \image html errorindicators/JKQTPErrorLines.png */
697 JKQTPErrorPolygons=0x08, /*!< \brief line error lines, but with filled range in between \image html errorindicators/JKQTPErrorPolygons.png */
698 JKQTPErrorEllipses=0x10, /*!< \brief an ellipse spanned by the errors \image html errorindicators/JKQTPErrorEllipses.png */
699 JKQTPErrorBoxes=0x20, /*!< \brief a box spanned by the errors \image html errorindicators/JKQTPErrorBoxes.png */
700
701 JKQTPErrorDirectionBoth=0x000, /*!< \brief do not draw half error-bars, but in both directions (default) \image html errorindicators/JKQTPErrorBars.png */
702 JKQTPErrorDirectionOutwards=0x100, /*!< \brief used to specify the directon of half error bars: outwards pointing \image html errorindicators/JKQTPErrorHalfBarsOutwards.png */
703 JKQTPErrorDirectionInwards=0x200, /*!< \brief used to specify the directon of half error bars: inwards pointing \image html errorindicators/JKQTPErrorHalfBarsInwards.png */
704 JKQTPErrorDirectionAbove=04200, /*!< \brief used to specify the directon of half error bars: above pointing \image html errorindicators/JKQTPErrorHalfBarsAbove.png */
705 JKQTPErrorDirectionBelow=0x800, /*!< \brief used to specify the directon of half error bars: below pointing \image html errorindicators/JKQTPErrorHalfBarsBelow.png */
706 JKQTPErrorIndicatorNone=0x0000, /*!< \brief used to specify that error bars shall be un-decorated i.e. "simple error-bars" */
707 JKQTPErrorIndicatorBar=0x1000, /*!< \brief used to specify that error bars shall be decorated by bars \image html errorindicators/JKQTPErrorIndicatorBar.png */
708 JKQTPErrorIndicatorArrows=0x2000, /*!< \brief used to specify that error bars shall be decorated by arrows \image html errorindicators/JKQTPErrorIndicatorArrows.png */
709 JKQTPErrorIndicatorInwardArrows=0x4000, /*!< \brief used to specify that error bars shall be decorated by arrows \image html errorindicators/JKQTPErrorIndicatorInwardArrows.png */
710
711 JKQTPErrorArrows=JKQTPErrorSimpleBars|JKQTPErrorIndicatorArrows, /*!< \brief error bars decorated with arrows for each data point \image html errorindicators/JKQTPErrorArrows.png */
712 JKQTPErrorInwardArrows=JKQTPErrorSimpleBars|JKQTPErrorIndicatorInwardArrows, /*!< \brief error bars decorated with inwards-pointing arrows for each data point \image html errorindicators/JKQTPErrorInwardArrows.png */
713 JKQTPErrorBars=JKQTPErrorSimpleBars|JKQTPErrorIndicatorBar, /*!< \brief error bars for each data point \image html errorindicators/JKQTPErrorBars.png */
714 JKQTPErrorSimpleBarsPolygons=JKQTPErrorSimpleBars|JKQTPErrorPolygons, /*!< \brief simplified error barsand polygons for each data point \image html errorindicators/JKQTPErrorSimpleBarsPolygons.png */
715 JKQTPErrorSimpleBarsLines=JKQTPErrorSimpleBars|JKQTPErrorLines, /*!< \brief simplified error bars and line for each data point \image html errorindicators/JKQTPErrorSimpleBarsLines.png */
716 JKQTPErrorHalfBarsOutwards=JKQTPErrorBars|JKQTPErrorDirectionOutwards, /*!< \brief half error bars for each data point, pointing outwards \image html errorindicators/JKQTPErrorHalfBarsOutwards.png */
717 JKQTPErrorHalfBarsInwards=JKQTPErrorBars|JKQTPErrorDirectionInwards, /*!< \brief half error bars for each data point, pointing inwards \image html errorindicators/JKQTPErrorHalfBarsInwards.png */
718 JKQTPErrorHalfBarsAbove=JKQTPErrorBars|JKQTPErrorDirectionAbove, /*!< \brief half error bars for each data point, pointing up \image html errorindicators/JKQTPErrorHalfBarsAbove.png */
719 JKQTPErrorHalfBarsBelow=JKQTPErrorBars|JKQTPErrorDirectionBelow, /*!< \brief half error bars for each data point, pointing down \image html errorindicators/JKQTPErrorHalfBarsBelow.png */
720 JKQTPErrorBarsLines=JKQTPErrorBars|JKQTPErrorLines, /*!< \brief error bars and lines for each data point \image html errorindicators/JKQTPErrorBarsLines.png */
721 JKQTPErrorBarsPolygons=JKQTPErrorBars|JKQTPErrorPolygons, /*!< \brief error bars and polygons for each data point \image html errorindicators/JKQTPErrorBarsPolygons.png */
722};
723/** \brief specifies the plot styles for the error information, e.g. error bars, boxes, lines ...
724 * \ingroup jkqtplotter_basegraphserrors
725 *
726 * \qFlagsNote{JKQTPErrorPlotstyle,JKQTPErrorPlotstyleElements}
727 *
728 * \see JKQTPErrorPlotstyleElements, JKQTPXGraphErrorData, JKQTPYGraphErrorData
729 */
731Q_DECLARE_OPERATORS_FOR_FLAGS(JKQTPErrorPlotstyle)
732
733
734/** \brief converts a JKQTPErrorPlotstyle variable into a human-readable string
735 * \ingroup jkqtplotter_basegraphserrors
736 */
738
739/** \brief converts a String into a JKQTPErrorPlotstyle
740 * \ingroup jkqtplotter_basegraphserrors
741 */
743
744
745
746
747/** \brief plot styles for the error information
748 * \ingroup jkqtplotter_linesymbolgraphs_line
749 *
750 * \see JKQTPSpecialLineTypeComboBox
751 */
753 JKQTPStepLeft=0, /*!< \brief datapoint is on the left edge of the hor. step line \image html JKQTPStepLeft.png */
754 JKQTPStepCenter=1, /*!< \brief datapoint is centered on the hor. step line \image html JKQTPStepCenter.png */
755 JKQTPStepRight=2, /*!< \brief datapoint is on the right edge of the hor. step line \image html JKQTPStepRight.png */
756 JKQTPStepAverage=3, /*!< \brief horizontal line on the level of the average between two points + vertical lines to the points \image html JKQTPStepAverage.png */
757 JKQTPDirectLine=4, /*!< \brief no step, but connects the two datapoints with a straight line \image html JKQTPDirectLine.png */
758};
759
760
761/** \brief converts a JKQTPSpecialLineType variable into a human-readable string
762 * \ingroup jkqtplotter_linesymbolgraphs_line
763 */
765
766/** \brief converts a String into a JKQTPSpecialLineType
767 * \ingroup jkqtplotter_linesymbolgraphs_line
768 */
770
771
772
773#endif // JKQTPTOOLS_H_INCLUDED
base class for 2D plotter classes (used by the plotter widget JKQTPlotter)
Definition jkqtpbaseplotter.h:394
this class extends the QPainter
Definition jkqtpenhancedpainter.h:33
QFlags< JKQTPErrorPlotstyleElements > JKQTPErrorPlotstyle
specifies the plot styles for the error information, e.g. error bars, boxes, lines ....
Definition jkqtptools.h:730
JKQTPErrorPlotstyleElements
specifies the plot styles for the error information, e.g. error bars, boxes, lines ....
Definition jkqtptools.h:693
JKQTPLOTTER_LIB_EXPORT QString JKQTPErrorPlotstyle2String(JKQTPErrorPlotstyle pos)
converts a JKQTPErrorPlotstyle variable into a human-readable string
QFlags< JKQTPCADrawModeElements > JKQTPCADrawMode
drawing mode for a coordinate axis
Definition jkqtptools.h:432
JKQTPLOTTER_LIB_EXPORT JKQTPErrorPlotstyle String2JKQTPErrorPlotstyle(const QString &pos)
converts a String into a JKQTPErrorPlotstyle
@ JKQTPErrorDirectionAbove
used to specify the directon of half error bars: above pointing
Definition jkqtptools.h:704
@ JKQTPErrorHalfBarsOutwards
half error bars for each data point, pointing outwards
Definition jkqtptools.h:716
@ JKQTPErrorSimpleBars
simplified error bars for each data point
Definition jkqtptools.h:695
@ JKQTPErrorDirectionOutwards
used to specify the directon of half error bars: outwards pointing
Definition jkqtptools.h:702
@ JKQTPErrorBarsPolygons
error bars and polygons for each data point
Definition jkqtptools.h:721
@ JKQTPErrorEllipses
an ellipse spanned by the errors
Definition jkqtptools.h:698
@ JKQTPErrorIndicatorArrows
used to specify that error bars shall be decorated by arrows
Definition jkqtptools.h:708
@ JKQTPErrorLines
a second and third graph line above and below the actual data which indicates the error value
Definition jkqtptools.h:696
@ JKQTPErrorPolygons
line error lines, but with filled range in between
Definition jkqtptools.h:697
@ JKQTPErrorHalfBarsBelow
half error bars for each data point, pointing down
Definition jkqtptools.h:719
@ JKQTPErrorArrows
error bars decorated with arrows for each data point
Definition jkqtptools.h:711
@ JKQTPNoError
don't show error information
Definition jkqtptools.h:694
@ JKQTPErrorDirectionBelow
used to specify the directon of half error bars: below pointing
Definition jkqtptools.h:705
@ JKQTPErrorBoxes
a box spanned by the errors
Definition jkqtptools.h:699
@ JKQTPErrorDirectionBoth
do not draw half error-bars, but in both directions (default)
Definition jkqtptools.h:701
@ JKQTPErrorSimpleBarsPolygons
simplified error barsand polygons for each data point
Definition jkqtptools.h:714
@ JKQTPErrorDirectionInwards
used to specify the directon of half error bars: inwards pointing
Definition jkqtptools.h:703
@ JKQTPErrorSimpleBarsLines
simplified error bars and line for each data point
Definition jkqtptools.h:715
@ JKQTPErrorBarsLines
error bars and lines for each data point
Definition jkqtptools.h:720
@ JKQTPErrorIndicatorNone
used to specify that error bars shall be un-decorated i.e. "simple error-bars"
Definition jkqtptools.h:706
@ JKQTPErrorHalfBarsAbove
half error bars for each data point, pointing up
Definition jkqtptools.h:718
@ JKQTPErrorHalfBarsInwards
half error bars for each data point, pointing inwards
Definition jkqtptools.h:717
@ JKQTPErrorBars
error bars for each data point
Definition jkqtptools.h:713
@ JKQTPErrorIndicatorBar
used to specify that error bars shall be decorated by bars
Definition jkqtptools.h:707
@ JKQTPErrorIndicatorInwardArrows
used to specify that error bars shall be decorated by arrows
Definition jkqtptools.h:709
@ JKQTPErrorInwardArrows
error bars decorated with inwards-pointing arrows for each data point
Definition jkqtptools.h:712
JKQTPLOTTER_LIB_EXPORT JKQTPSpecialLineType String2JKQTPSpecialLineType(const QString &pos)
converts a String into a JKQTPSpecialLineType
JKQTPSpecialLineType
plot styles for the error information
Definition jkqtptools.h:752
JKQTPLOTTER_LIB_EXPORT QString JKQTPSpecialLineType2String(JKQTPSpecialLineType pos)
converts a JKQTPSpecialLineType variable into a human-readable string
@ JKQTPDirectLine
no step, but connects the two datapoints with a straight line
Definition jkqtptools.h:757
@ JKQTPStepRight
datapoint is on the right edge of the hor. step line
Definition jkqtptools.h:755
@ JKQTPStepLeft
datapoint is on the left edge of the hor. step line
Definition jkqtptools.h:753
@ JKQTPStepAverage
horizontal line on the level of the average between two points + vertical lines to the points
Definition jkqtptools.h:756
@ JKQTPStepCenter
datapoint is centered on the hor. step line
Definition jkqtptools.h:754
JKQTPLOTTER_LIB_EXPORT QString JKQTPColorDerivationMode2String(JKQTPColorDerivationMode mode)
convert a JKQTPColorDerivationMode to a QString
QColor QColorWithAlpha(const QColor &color, int alpha)
construct a QColor, based on the given color, but with alpha set to the specified value alpha
Definition jkqtptools.h:376
QColor QColorWithAlphaF(const QColor &color, qreal alphaF)
construct a QColor, based on the given color, but with alpha set to the specified value alphaF
Definition jkqtptools.h:366
JKQTPLOTTER_LIB_EXPORT QColor JKQTPGetDerivedColor(JKQTPColorDerivationMode mode, const QColor &basecolor)
use a JKQTPColorDerivationMode to derive a color from col as specified
JKQTPLOTTER_LIB_EXPORT JKQTPColorDerivationMode String2JKQTPColorDerivationMode(const QString &mode)
convert a QString (created by JKQTPColorDerivationMode2String() ) to JKQTPColorDerivationMode
size_t y
logic y-position of a graph, relative to the current JKQtPlotter
Definition jkqtptools.h:677
size_t x
logic x-position of a graph, relative to the current JKQtPlotter
Definition jkqtptools.h:675
JKQTBasePlotter * plotter
JKQTBasePlotter.
Definition jkqtptools.h:679
JKQTPMouseMoveActionsHashMap::const_iterator JKQTPMouseMoveActionsHashMapIterator
iterator for JKQTPMouseMoveActionsHashMap
Definition jkqtptools.h:258
JKQTPLOTTER_LIB_EXPORT QString JKQTPLabelTickMode2String(JKQTPLabelTickMode pos)
converts a JKQTPLabelTickMode variable into a human-readable string
JKQTPKeyLayout
layout of the key
Definition jkqtptools.h:634
QHash< QPair< Qt::MouseButton, Qt::KeyboardModifiers >, JKQTPMouseDoubleClickActions > JKQTPMouseDoubleClickActionsHashMap
data structure for storage of assigned JKQTPMouseDoubleClickActions
Definition jkqtptools.h:247
JKQTPLOTTER_LIB_EXPORT JKQTPKeyLayout String2JKQTPKeyLayout(const QString &pos)
converts a String into a JKQTPKeyLayout
JKQTPMouseDoubleClickActionsHashMap::const_iterator JKQTPMouseDoubleClickActionsHashMapIterator
iterator for JKQTPMouseDoubleClickActionsHashMap
Definition jkqtptools.h:250
JKQTPLOTTER_LIB_EXPORT QString JKQTPContextMenuModes2String(JKQTPContextMenuModes act)
convert a JKQTPContextMenuModes to a QString
JKQTPLOTTER_LIB_EXPORT QString JKQTPUserActionMarkerType2String(JKQTPUserActionMarkerType act)
convert a JKQTPUserActionMarkerType to a QString
JKQTPLOTTER_LIB_EXPORT JKQTPKeyPosition String2JKQTPKeyPosition(const QString &pos)
converts a string into a JKQTPLabelPosition
JKQTPLOTTER_LIB_EXPORT JKQTPMouseDoubleClickActions String2JKQTPMouseDoubleClickActions(const QString &act)
convert a QString (created by JKQTPMouseDoubleClickActions2String() ) to JKQTPMouseDoubleClickActions
JKQTPCADrawModeElements
drawing flags for a coordinate axis
Definition jkqtptools.h:404
JKQTPLOTTER_LIB_EXPORT JKQTPContextMenuModes String2JKQTPContextMenuModes(const QString &act)
convert a QString (created by JKQTPContextMenuModes2String() ) to JKQTPContextMenuModes
JKQTPLOTTER_LIB_EXPORT JKQTPUserActionMarkerType String2JKQTPUserActionMarkerType(const QString &act)
convert a QString (created by JKQTPUserActionMarkerType2String() ) to JKQTPUserActionMarkerType
JKQTPLOTTER_LIB_EXPORT QString JKQTPLabelPosition2String(JKQTPLabelPosition pos)
converts a JKQTPLabelPosition variable into a human-readable string
JKQTPLOTTER_LIB_EXPORT QList< JKQTPKeyPosition > JKQTPGetTypicalKeyPositions()
returns a list of typical positions of the main key
JKQTPLOTTER_LIB_EXPORT JKQTPMouseWheelActions String2JKQTPMouseWheelActions(const QString &act)
convert a QString (created by JKQTPMouseWheelActions2String() ) to JKQTPMouseWheelActions
JKQTPLOTTER_LIB_EXPORT QString JKQTPKeyPosition2String(JKQTPKeyPosition pos)
converts a JKQTPLabelPosition variable into a human-readable string
QFlags< JKQTPKeyPositions > JKQTPKeyPosition
position of the key
Definition jkqtptools.h:609
JKQTPLOTTER_LIB_EXPORT QString JKQTPMouseWheelActions2String(JKQTPMouseWheelActions act)
convert a JKQTPMouseWheelActions to a QString
JKQTPMouseMoveActions
Availble action this JKQtPlotter can perform when mouse events occur. This allows you to e....
Definition jkqtptools.h:190
JKQTPLOTTER_LIB_EXPORT QString JKQTPCALabelType2String(JKQTPCALabelType pos)
converts a JKQTPCALabelType variable into a human-readable string
JKQTPMouseDragActionsHashMap::const_iterator JKQTPMouseDragActionsHashMapIterator
iterator for JKQTPMouseDragActionsHashMap
Definition jkqtptools.h:236
JKQTPLOTTER_LIB_EXPORT QString JKQTPKeyLayout2String(JKQTPKeyLayout pos)
converts a JKQTPKeyLayout variable into a human-readable string
JKQTPMouseDragActions
Availble action this JKQtPlotter can perform when mouse events occur. This allows you to e....
Definition jkqtptools.h:110
JKQTPLOTTER_LIB_EXPORT JKQTPCALabelType String2JKQTPCALabelType(const QString &pos)
converts a string into a JKQTPCALabelType
JKQTPKeyPositions
position of the key
Definition jkqtptools.h:545
JKQTPUserActionMarkerType
Styles in which to mark single positions during user actions in JKQTPlotter.
Definition jkqtptools.h:83
JKQTPMouseWheelActions
actions that can be bound to a mouse wheel event
Definition jkqtptools.h:164
JKQTPLabelPosition
position of the axis labels
Definition jkqtptools.h:510
JKQTPLOTTER_LIB_EXPORT JKQTPMouseMoveActions String2JKQTPMouseMoveActions(const QString &button)
convert a QString (created by JKQTPMouseDragActions2String() ) to JKQTPMouseDragActions
QHash< Qt::KeyboardModifiers, JKQTPMouseWheelActions > JKQTPMouseWheelActionsHashMap
data structure for storage of assigned JKQTPMouseWheelActions
Definition jkqtptools.h:240
#define JKQTPLOTTER_LIB_EXPORT
Definition jkqtplotter_imexport.h:89
JKQTPContextMenuModes
modes for the context menu
Definition jkqtptools.h:211
JKQTPLOTTER_LIB_EXPORT JKQTPLabelPosition String2JKQTPLabelPosition(const QString &pos)
converts a string into a JKQTPLabelPosition
JKQTPLOTTER_LIB_EXPORT QString JKQTPMouseMoveActions2String(JKQTPMouseMoveActions act)
convert a JKQTPMouseDragActions to a QString
QHash< Qt::KeyboardModifiers, JKQTPMouseMoveActions > JKQTPMouseMoveActionsHashMap
data structure for storage of assigned JKQTPMouseMoveActions
Definition jkqtptools.h:255
JKQTPLOTTER_LIB_EXPORT QString JKQTPMouseDragActions2String(JKQTPMouseDragActions act)
convert a JKQTPMouseDragActions to a QString
JKQTPLOTTER_LIB_EXPORT JKQTPCADrawMode String2JKQTPCADrawMode(const QString &pos)
converts a string into a JKQTPCADrawMode
JKQTPLOTTER_LIB_EXPORT QString JKQTPMouseDoubleClickActions2String(JKQTPMouseDoubleClickActions act)
convert a JKQTPMouseDoubleClickActions to a QString
JKQTPMouseDoubleClickActions
actions that can be bound to a double-click of the mouse
Definition jkqtptools.h:140
JKQTPLOTTER_LIB_EXPORT JKQTPMouseDragActions String2JKQTPMouseDragActions(const QString &button)
convert a QString (created by JKQTPMouseDragActions2String() ) to JKQTPMouseDragActions
JKQTPLOTTER_LIB_EXPORT JKQTPLabelTickMode String2JKQTPLabelTickMode(const QString &pos)
converts a string into a JKQTPLabelTickMode
JKQTPCALabelType
display mode for the (axis) labels
Definition jkqtptools.h:451
QHash< QPair< Qt::MouseButton, Qt::KeyboardModifiers >, JKQTPMouseDragActions > JKQTPMouseDragActionsHashMap
data structure for storage of assigned JKQTPMouseDragActions
Definition jkqtptools.h:233
JKQTPLOTTER_LIB_EXPORT QString JKQTPCADrawMode2String(JKQTPCADrawMode pos)
converts a JKQTPCADrawMode variable into a human-readable string
JKQTPMouseWheelActionsHashMap::const_iterator JKQTPMouseWheelActionsHashMapIterator
iterator for JKQTPMouseWheelActionsHashMap
Definition jkqtptools.h:243
JKQTPPlotStyleType
used to specify teh type of graph when calling getPlotStyle()
Definition jkqtptools.h:68
JKQTPLabelTickMode
mode of the axis ticks
Definition jkqtptools.h:478
@ JKQTPKeyLayoutOneRow
the key consists of one row. This may overflow the available space, use JKQTPKeyLayoutMultiColumn or ...
Definition jkqtptools.h:639
@ JKQTPKeyLayoutMultiColumn
the key items are distributed over multiple columns that fill the available space,...
Definition jkqtptools.h:643
@ JKQTPKeyLayoutOneColumn
the key consists of one column. This may overflow the available space, use JKQTPKeyLayoutMultiColumn ...
Definition jkqtptools.h:635
@ JKQTPKeyLayoutMax
Definition jkqtptools.h:652
@ JKQTPKeyLayoutMultiRow
the key items are distributed over multiple rows that fill the available space (left->right,...
Definition jkqtptools.h:647
@ JKQTPCADMTickLabelsAxisLabel
draw axis tick labels and axisLabel
Definition jkqtptools.h:419
@ JKQTPCADMMaxFilledArrow
draw a filled arrow at the max-end of the axis
Definition jkqtptools.h:411
@ JKQTPCADMcompleteMinMaxArrow
draw axis withline, ticks, ticklabels and axis label and arrows pointing to the min and max side of t...
Definition jkqtptools.h:423
@ JKQTPCADMTicks
draw axis ticks
Definition jkqtptools.h:406
@ JKQTPCADMcomplete
draw axis withline, ticks, ticklabels and axis label
Definition jkqtptools.h:421
@ JKQTPCADMLine
draw axis as thick line
Definition jkqtptools.h:405
@ JKQTPCADMAxisLabel
draw axis axis Label
Definition jkqtptools.h:408
@ JKQTPCADMTickLabels
draw axis tick labels
Definition jkqtptools.h:407
@ JKQTPCADMMinFilledArrow
draw a filled arrow at the min-end of the axis
Definition jkqtptools.h:413
@ JKQTPCADMnone
draw no axis
Definition jkqtptools.h:420
@ JKQTPCADMMaxArrow
an open arrow at the max-end of the axis
Definition jkqtptools.h:410
@ JKQTPCADMMinArrow
an open arrow at the end of the axis at the min-end of the axis
Definition jkqtptools.h:412
@ JKQTPCADMcompleteMaxArrow
draw axis withline, ticks, ticklabels and axis label and an arrow pointing to the max-side of the axi...
Definition jkqtptools.h:422
@ JKQTPCADMTicksTickLabelsAxisLabel
draw axis with ticks, tick labels and axisLabel
Definition jkqtptools.h:417
@ JKQTPCADMLineTicksTickLabels
draw axis with ticks, line and tick labels
Definition jkqtptools.h:415
@ JKQTPCADMLineTicks
draw axis with ticks and line
Definition jkqtptools.h:416
@ JKQTPCADMTicksTickLabels
draw axis with ticks and tick labels
Definition jkqtptools.h:418
@ jkqtpmmaToolTipForClosestDataPoint
shows a tooltip with data of the closest data-point in the plot
Definition jkqtptools.h:191
@ jkqtpmdaScribbleForEvents
let the user scribble on the plot (left mouse button is kept pressed) and call JKQTPlotter::userScrib...
Definition jkqtptools.h:118
@ jkqtpmdaToolTipForClosestDataPoint
shows a tooltip with data of the closest data-point in the plot
Definition jkqtptools.h:119
@ jkqtpmdaZoomByRectangle
draw a rectangle and when finish zoom to that rectangle
Definition jkqtptools.h:113
@ jkqtpmdaPanPlotOnRelease
the user can drag the current plot window while keeping the left mouse-button pushed down (=panning),...
Definition jkqtptools.h:112
@ jkqtpmdaDrawLineForEvent
draw a line and when finished execute the signal JKQTPlotter::userLineFinished()
Definition jkqtptools.h:117
@ jkqtpmdaPanPlotOnMove
the user can drag the current plot window while keeping the left mouse-button pushed down (=panning),...
Definition jkqtptools.h:111
@ jkqtpmdaDrawEllipseForEvent
draw an ellipse and when finished execute the signal JKQTPlotter::userEllipseFinished()
Definition jkqtptools.h:116
@ jkqtpmdaDrawRectangleForEvent
draw a rectangle and when finished execute the signal JKQTPlotter::userRectangleFinished()
Definition jkqtptools.h:114
@ jkqtpmdaRuler
shows a ruler over the plot, which measures delta X, delta Y and sqrt(dx^2+dy^2)
Definition jkqtptools.h:120
@ jkqtpmdaDrawCircleForEvent
draw a circle and when finished execute the signal JKQTPlotter::userCircleFinished()
Definition jkqtptools.h:115
@ JKQTPKeyInsideLeft
the key is positioned inside on the center-left
Definition jkqtptools.h:595
@ JKQTPKeyLeft
key is drawn to the left
Definition jkqtptools.h:551
@ JKQTPKeyOutsideBottomCenter
the key is positioned below the graph, in the center
Definition jkqtptools.h:569
@ JKQTPKeyBottom
key is drawn to the bottom
Definition jkqtptools.h:556
@ JKQTPKeyInsideBottomLeft
the key is positioned inside on the bottom-left
Definition jkqtptools.h:587
@ JKQTPKeyOutsideBottom
key is drawn outside and below of the plot rectangle
Definition jkqtptools.h:548
@ JKQTPKeyOutsideLeftTop
the key is positioned on the left side of the graph, towards the top
Definition jkqtptools.h:571
@ JKQTPKeyHCenter
key is drawn to the horizontal center
Definition jkqtptools.h:552
@ JKQTPKeyInsideTop
the key is positioned inside on the top-center
Definition jkqtptools.h:591
@ JKQTPKeyOutsideLeft
key is drawn outside and on the left of the plot rectangle
Definition jkqtptools.h:549
@ JKQTPKeyOutsideBottomRight
the key is positioned below the graph, on the right
Definition jkqtptools.h:567
@ JKQTPKeyTop
key is drawn to the top
Definition jkqtptools.h:554
@ JKQTPKeyOutsideTopCenter
the key is positioned above the graph, in the center
Definition jkqtptools.h:563
@ JKQTPKeyInsideBottomRight
the key is positioned inside on the bottom-right
Definition jkqtptools.h:589
@ JKQTPKeyOutsideTopLeft
the key is positioned above the graph, on the left
Definition jkqtptools.h:561
@ JKQTPKeyOutsideTopRight
the key is positioned above the graph, on the right
Definition jkqtptools.h:559
@ JKQTPKeyInside
key is drawn inside the plot rectangle
Definition jkqtptools.h:546
@ JKQTPKeyInsideRight
the key is positioned inside on the center-right
Definition jkqtptools.h:597
@ JKQTPKeyInsideTopLeft
the key is positioned inside on the top-left
Definition jkqtptools.h:585
@ JKQTPKeyOutsideLeftCenter
the key is positioned on the left side of the graph, in the center
Definition jkqtptools.h:573
@ JKQTPKeyOutsideTop
key is drawn outside and above of the plot rectangle
Definition jkqtptools.h:547
@ JKQTPKeyOutsideRightCenter
the key is positioned on the right side of the graph, in the center
Definition jkqtptools.h:579
@ JKQTPKeyInsideBottom
the key is positioned inside on the bottom-center
Definition jkqtptools.h:593
@ JKQTPKeyRight
key is drawn to the right
Definition jkqtptools.h:553
@ JKQTPKeyVCenter
key is drawn to the vertical center
Definition jkqtptools.h:555
@ JKQTPKeyInsideTopRight
the key is positioned inside on the top-right
Definition jkqtptools.h:583
@ JKQTPKeyOutsideRightTop
the key is positioned on the left side of the graph, towards the top
Definition jkqtptools.h:581
@ JKQTPKeyOutsideRight
key is drawn outside and on the rightof the plot rectangle
Definition jkqtptools.h:550
@ JKQTPKeyDefaultPosition
Definition jkqtptools.h:599
@ JKQTPKeyOutsideLeftBottom
the key is positioned on the left side of the graph, towards the Bottom
Definition jkqtptools.h:575
@ JKQTPKeyOutsideRightBottom
the key is positioned on the right side of the graph, towards the bottom
Definition jkqtptools.h:577
@ JKQTPKeyOutsideBottomLeft
the key is positioned below the graph, on the left
Definition jkqtptools.h:565
@ jkqtpuamtCircleAndCrossHair
a cross-hair to the position to mark, with a circle-marker around the actual target (i....
Definition jkqtptools.h:86
@ jkqtpuamtCrossHair
a cross-hair to the position to mark
Definition jkqtptools.h:85
@ jkqtpuamtCircle
a small circle around the position to mark
Definition jkqtptools.h:84
@ jkqtpmwaZoomByWheel
use the mouse-wheel for zooming
Definition jkqtptools.h:165
@ jkqtpmwaPanByWheel
use the mouse-wheel for panning the plot
Definition jkqtptools.h:166
@ jkqtpmwaZoomFixedMouseByWheel
use the mouse-wheel for zooming, while keeping the position under the mouse cursor fixed (Google Maps...
Definition jkqtptools.h:168
@ jkqtpmwaZoomByWheelAndTrackpadPan
use the mouse-wheel for zooming. In addition, this tries to recognize track-pad pan gestures and appl...
Definition jkqtptools.h:167
@ jkqtpmwaZoomFixedMouseByWheelAndTrackpadPan
use the mouse-wheel for zooming with fixed mouse position, and track-pad pan gesture recognition.
Definition jkqtptools.h:169
@ JKQTPLabelMaxBesides
the axis label is near the max value of the axis (right/top), but besides the axis tip
Definition jkqtptools.h:523
@ JKQTPLabelMin
the axis label is near the min value of the axis (left/bottom)
Definition jkqtptools.h:511
@ JKQTPLabelMax
the axis label is near the max value of the axis (right/top)
Definition jkqtptools.h:514
@ JKQTPLabelPositionMax
Definition jkqtptools.h:526
@ JKQTPLabelCenter
the label is at the center of the axis
Definition jkqtptools.h:517
@ JKQTPLabelMinBesides
the axis label is near the min value of the axis (left/bottom), but besides the axis tip
Definition jkqtptools.h:520
@ jkqtpcmmStandardContextMenu
only show the standard context menu
Definition jkqtptools.h:212
@ jkqtpcmmNoContextMenu
don't show a context menu at all
Definition jkqtptools.h:215
@ jkqtpcmmSpecialContextMenu
only show the special context menu
Definition jkqtptools.h:213
@ jkqtpcmmStandardAndSpecialContextMenu
show the standard context menu, with the special context menu incorporated
Definition jkqtptools.h:214
@ jkqtpdcaClickOpensContextMenu
a double-click opens the context menu
Definition jkqtptools.h:143
@ jkqtpdcaClickMovesViewport
a double-click centers the x/y-range around the clicked position
Definition jkqtptools.h:145
@ jkqtpdcaClickOpensSpecialContextMenu
a double-click opens the special context menu
Definition jkqtptools.h:144
@ jkqtpdcaClickZoomsIn
a double-click zooms into the plot at the current mouse location
Definition jkqtptools.h:141
@ jkqtpdcaClickZoomsOut
a double-click zooms out of the plot at the current mouse location
Definition jkqtptools.h:142
@ JKQTPCALTexponent
show numbers in exponential for, e.g. ...
Definition jkqtptools.h:455
@ JKQTPCALTcount
Definition jkqtptools.h:470
@ JKQTPCALTslashfrac
show numbers as fraction, the number is first rounded to the given precision and then a fraction is c...
Definition jkqtptools.h:461
@ JKQTPCALTformat
generate axis label from an arbitrary "std::format" formatting string (see e.g. https://en....
Definition jkqtptools.h:467
@ JKQTPCALTdefault
simply print the numbers
Definition jkqtptools.h:452
@ JKQTPCALTscientific
print the numbers in scientific notation, e.g. "1.23e-4"
Definition jkqtptools.h:453
@ JKQTPCALTintslashfrac
show numbers as integral+fraction, the number is first rounded to the given precision and then a frac...
Definition jkqtptools.h:464
@ JKQTPCALTsfrac
show numbers as fraction, the number is first rounded to the given precision and then a fraction is c...
Definition jkqtptools.h:462
@ JKQTPCALTdate
show numbers as dates
Definition jkqtptools.h:457
@ JKQTPCALTprintf
generate axis label from an arbitrary "printf" formatting string (see e.g. https://en....
Definition jkqtptools.h:456
@ JKQTPCALTtime
show numbers as times
Definition jkqtptools.h:458
@ JKQTPCALTexponentCharacter
print the numbers and show a unit character, i.e. 5μ for , 3k for ...
Definition jkqtptools.h:454
@ JKQTPCALTintsfrac
show numbers as integral+fraction, the number is first rounded to the given precision and then a frac...
Definition jkqtptools.h:465
@ JKQTPCALTmax
Definition jkqtptools.h:471
@ JKQTPCALTfrac
show numbers as fraction, the number is first rounded to the given precision and then a fraction is c...
Definition jkqtptools.h:460
@ JKQTPCALTdatetime
show numbers as times
Definition jkqtptools.h:459
@ JKQTPCALTintfrac
show numbers as integral+fraction, the number is first rounded to the given precision and then a frac...
Definition jkqtptools.h:463
@ Annotation
Definition jkqtptools.h:75
@ Barchart
Definition jkqtptools.h:70
@ FinancialNegative
Definition jkqtptools.h:77
@ Default
Definition jkqtptools.h:69
@ Impulses
Definition jkqtptools.h:73
@ Geometric
Definition jkqtptools.h:74
@ FinancialPositive
Definition jkqtptools.h:76
@ Filled
Definition jkqtptools.h:72
@ Boxplot
Definition jkqtptools.h:71
@ JKQTPLTMLinOrPower
linear, or log, depending on whether the axis is log
Definition jkqtptools.h:479
@ JKQTPLTMPower
powers (of the log-base)
Definition jkqtptools.h:481
@ JKQTPLTMmax
Definition jkqtptools.h:483
@ JKQTPLTMLin
always linear (even for log-axes)
Definition jkqtptools.h:480
used to represent the position of other graphs in Saving and Printing Graphs
Definition jkqtptools.h:673
Specifies how a fill-color is derived from a given color.
Definition jkqtptools.h:264
float transparencyModficationStrength
strength of transparencyModification-settings, such as TransparencyChangeMode::MoreTransparent or Tra...
Definition jkqtptools.h:335
JKQTPColorDerivationMode(const QString &mode)
initialize object from a string (calls fromString() )
QColor apply(const QColor &basecolor) const
apply the modifications encoded in this object to a given color
QColor targetColor
replacement color when colorModification==ColorChangeMode::ReplaceColor
Definition jkqtptools.h:319
ColorChangeMode
Definition jkqtptools.h:308
@ LighterColor
Definition jkqtptools.h:313
@ InvertColor
Definition jkqtptools.h:314
@ DarkerColor
Definition jkqtptools.h:312
@ ReplaceColorNotTransparency
Definition jkqtptools.h:311
@ ReplaceColorAndTransparency
Definition jkqtptools.h:310
@ SameColor
Definition jkqtptools.h:309
float colorModificationStrength
strength of colorModification-settings, such as ColorChangeMode::DarkerColor or ColorChangeMode::Ligh...
Definition jkqtptools.h:321
bool operator==(const JKQTPColorDerivationMode &other) const
compares two objects for equality
static JKQTPColorDerivationMode fromString(const QString &mode)
read values from a string
QString toString() const
convert object contents into a string
ColorChangeMode colorModification
specifies how the color should change
Definition jkqtptools.h:317
TransparencyChangeMode transparencyModification
specifies how the transparency of the color chould change
Definition jkqtptools.h:331
float targetTransparency
target transparency (0:non-transparennt .. 1:fully-transparent, i.e. 1-alphaF!!!) for TransparencyCha...
Definition jkqtptools.h:333
bool operator==(const PredefinedModes &other) const
determines whether the current object equals a default-initialized object with the given parameter,...
JKQTPColorDerivationMode(PredefinedModes mode=JKQTPFFCMSameColor)
for compatibility: use one of several predefined settings to iitialize object
PredefinedModes
Definition jkqtptools.h:266
@ JKQTPFFCMDarkerColor
fill with the a darker color
Definition jkqtptools.h:290
@ JKQTPFFCMSameEvenMoreTransparentColor
fill with the a more transparent color than JKQTPFFCMMoreTransparentColor
Definition jkqtptools.h:282
@ JKQTPFFCMNoColor
fully transparent color
Definition jkqtptools.h:268
@ JKQTPFFCMSameEvenLessTransparentColor
fill with the a more transparent color than JKQTPFFCMLessTransparentColor
Definition jkqtptools.h:284
@ JKQTPFFCMDarkerAndNonTransparentColor
fill with the a darker color, that is non-transparent (even if the basecolor had some transparency)
Definition jkqtptools.h:298
@ JKQTPFFCMGrey75Transparent
fill with 75% grey, slightly transparent
Definition jkqtptools.h:275
@ JKQTPFFCMSameLessTransparentColor
fill with the a partly transparent color
Definition jkqtptools.h:283
@ JKQTPFFCMmax
Definition jkqtptools.h:301
@ JKQTPFFCMLighterAndNonTransparentColor
fill with the a lighter color, that is non-transparent (even if the basecolor had some transparency)
Definition jkqtptools.h:296
@ JKQTPFFCMGrey50Transparent
fill with 50% grey, slightly transparent
Definition jkqtptools.h:276
@ JKQTPFFCMSameMoreTransparentColor
fill with the a partly transparent color
Definition jkqtptools.h:281
@ JKQTPFFCMEvenDarkerAndTransparentColor
fill with the an even darker color than JKQTPFFCMDarkerColor, that is in addition a bit transparent
Definition jkqtptools.h:295
@ JKQTPFFCMBlackTransparent
fill with black, slightly transparent
Definition jkqtptools.h:274
@ JKQTPFFCMWhiteTransparent
fill with white, slightly transparent
Definition jkqtptools.h:278
@ JKQTPFFCMDarkerAndTransparentColor
fill with the a darker color, that is in addition a bit transparent
Definition jkqtptools.h:294
@ JKQTPFFCMWhite
fill with white
Definition jkqtptools.h:273
@ JKQTPFFCMSameColor
fill with the same color
Definition jkqtptools.h:279
@ JKQTPFFCMInvertedColor
fill with the inverted color
Definition jkqtptools.h:285
@ JKQTPFFCMGrey75
fill with 75% grey
Definition jkqtptools.h:270
@ JKQTPFFCMGrey25
fill with 25% grey
Definition jkqtptools.h:272
@ JKQTPFFCMSameNonTransparentColor
fill with the same color, but remove any transparency (if any)
Definition jkqtptools.h:280
@ JKQTPFFCMInvertedNonTransparentColor
fill with the inverted color, non-transparent (even if the basecolor had some transparency)
Definition jkqtptools.h:287
@ JKQTPFFCMInvertedTransparentColor
fill with the inverted color, slightly transparent
Definition jkqtptools.h:286
@ JKQTPFFCMEvenDarkerColor
fill with the an even darker color than JKQTPFFCMDarkerColor
Definition jkqtptools.h:291
@ JKQTPFFCMFullyTransparentColor
fully transparent color
Definition jkqtptools.h:267
@ JKQTPFFCMLighterAndTransparentColor
fill with the a lighter color, that is in addition a bit transparent
Definition jkqtptools.h:292
@ JKQTPFFCMGrey25Transparent
fill with 25% grey, slightly transparent
Definition jkqtptools.h:277
@ JKQTPFFCMLighterColor
fill with the a lighter color
Definition jkqtptools.h:288
@ JKQTPFFCMBlack
fill with black
Definition jkqtptools.h:269
@ JKQTPFFCMEvenDarkerAndNonTransparentColor
fill with the an even darker color than JKQTPFFCMDarkerColor, that is non-transparent (even if the ba...
Definition jkqtptools.h:299
@ JKQTPFFCMEvenLighterAndTransparentColor
fill with the an even lighter color than JKQTPFFCMLighterColor, that is in addition a bit transparent
Definition jkqtptools.h:293
@ JKQTPFFCMEvenLighterAndNonTransparentColor
fill with the an even lighter color than JKQTPFFCMLighterColor, that is non-transparent (even if the ...
Definition jkqtptools.h:297
@ JKQTPFFCMGrey50
fill with 50% grey
Definition jkqtptools.h:271
@ JKQTPFFCMEvenLighterColor
fill with the an even lighter color than JKQTPFFCMLighterColor
Definition jkqtptools.h:289
TransparencyChangeMode
Definition jkqtptools.h:323
@ ReplaceTransparency
Definition jkqtptools.h:325
@ SameTransparency
Definition jkqtptools.h:324
@ LessTransparent
Definition jkqtptools.h:327
@ MoreTransparent
Definition jkqtptools.h:326