diff --git a/_j_k_q_t_c_make_fetch_content_example.html b/_j_k_q_t_c_make_fetch_content_example.html index 857d55132c2..a51739fab27 100644 --- a/_j_k_q_t_c_make_fetch_content_example.html +++ b/_j_k_q_t_c_make_fetch_content_example.html @@ -192,7 +192,7 @@ diff --git a/_j_k_q_t_c_make_link_example.html b/_j_k_q_t_c_make_link_example.html index 002457a8778..d9cd43564ed 100644 --- a/_j_k_q_t_c_make_link_example.html +++ b/_j_k_q_t_c_make_link_example.html @@ -186,7 +186,7 @@ diff --git a/_j_k_q_t_fast_plotter_test.html b/_j_k_q_t_fast_plotter_test.html index c3bef43e8d3..b8e1112c344 100644 --- a/_j_k_q_t_fast_plotter_test.html +++ b/_j_k_q_t_fast_plotter_test.html @@ -286,7 +286,7 @@ diff --git a/_j_k_q_t_math_text_render_cmd_line_tool.html b/_j_k_q_t_math_text_render_cmd_line_tool.html index 175e52ca064..cf81b28b0d6 100644 --- a/_j_k_q_t_math_text_render_cmd_line_tool.html +++ b/_j_k_q_t_math_text_render_cmd_line_tool.html @@ -186,7 +186,7 @@ diff --git a/_j_k_q_t_math_text_simple_example.html b/_j_k_q_t_math_text_simple_example.html index cf2a7df62a8..af86c93c97b 100644 --- a/_j_k_q_t_math_text_simple_example.html +++ b/_j_k_q_t_math_text_simple_example.html @@ -175,7 +175,7 @@ diff --git a/_j_k_q_t_math_text_test_app.html b/_j_k_q_t_math_text_test_app.html index 8f525649c54..4ab34a6f294 100644 --- a/_j_k_q_t_math_text_test_app.html +++ b/_j_k_q_t_math_text_test_app.html @@ -128,7 +128,7 @@ diff --git a/_j_k_q_t_plotter_advanced_line_and_fill_styling.html b/_j_k_q_t_plotter_advanced_line_and_fill_styling.html index c27122eb7b7..40b7f895fcd 100644 --- a/_j_k_q_t_plotter_advanced_line_and_fill_styling.html +++ b/_j_k_q_t_plotter_advanced_line_and_fill_styling.html @@ -213,7 +213,7 @@ diff --git a/_j_k_q_t_plotter_barcharts.html b/_j_k_q_t_plotter_barcharts.html index f130d7eccc6..e2a8559eb85 100644 --- a/_j_k_q_t_plotter_barcharts.html +++ b/_j_k_q_t_plotter_barcharts.html @@ -221,7 +221,7 @@ diff --git a/_j_k_q_t_plotter_barcharts_custom_draw_functor.html b/_j_k_q_t_plotter_barcharts_custom_draw_functor.html index ae7761a3182..f1bc9456b1d 100644 --- a/_j_k_q_t_plotter_barcharts_custom_draw_functor.html +++ b/_j_k_q_t_plotter_barcharts_custom_draw_functor.html @@ -211,7 +211,7 @@ diff --git a/_j_k_q_t_plotter_barcharts_error_bars.html b/_j_k_q_t_plotter_barcharts_error_bars.html index 4242cc7720b..b4e66eaf3e4 100644 --- a/_j_k_q_t_plotter_barcharts_error_bars.html +++ b/_j_k_q_t_plotter_barcharts_error_bars.html @@ -179,7 +179,7 @@ diff --git a/_j_k_q_t_plotter_barcharts_functor_filling.html b/_j_k_q_t_plotter_barcharts_functor_filling.html index 5efbdf3a368..fa9f83fc127 100644 --- a/_j_k_q_t_plotter_barcharts_functor_filling.html +++ b/_j_k_q_t_plotter_barcharts_functor_filling.html @@ -166,7 +166,7 @@ diff --git a/_j_k_q_t_plotter_barcharts_two_color_filling.html b/_j_k_q_t_plotter_barcharts_two_color_filling.html index 881fa597aba..af2e70566ae 100644 --- a/_j_k_q_t_plotter_barcharts_two_color_filling.html +++ b/_j_k_q_t_plotter_barcharts_two_color_filling.html @@ -166,7 +166,7 @@ diff --git a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore.html b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore.html index 1b437cd0f4f..48b98a993af 100644 --- a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore.html +++ b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore.html @@ -372,7 +372,7 @@

diff --git a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_iterators.html b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_iterators.html index 564179abcda..315f5264936 100644 --- a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_iterators.html +++ b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_iterators.html @@ -202,7 +202,7 @@

diff --git a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_regression.html b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_regression.html index 09ffb6f32fb..2bee6522fb7 100644 --- a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_regression.html +++ b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_regression.html @@ -390,7 +390,7 @@

diff --git a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics.html b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics.html index 3831f42f765..4eaee48b5e7 100644 --- a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics.html +++ b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics.html @@ -270,7 +270,7 @@

resO->setSymbolType(JKQTPNoSymbol);
plotter->addGraph(resO);
This implements xy line plots. This also alows to draw symbols at the data points.
Definition jkqtplines.h:61
-
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:101
+
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:144
void jkqtpstatKDE1D(InputIt first, InputIt last, BinsInputIt binsFirst, BinsInputIt binsLast, OutputIt KDEXOut, OutputIt KDEYOut, const std::function< double(double)> &kernel=std::function< double(double)>(&jkqtpstatKernel1DGaussian), double bandwidth=1.0, bool cummulative=false)
calculate an autoranged 1-dimensional Kernel Density Estimation (KDE) from the given data range first...
Definition jkqtpstatkde.h:343

The function accepts different kernel functions (any C++ functor double f(double x)) and provides a set of default kernels, e.g.

The source code of the main application can be found in datastore_statistics_2d.cpp. This tutorial cites only parts of this code to demonstrate different ways of working with data for the graphs.

-

+

Generating different sets of random numbers

The code segments below will fill different instances of JKQTPlotter with different statistical plots. All these plots are based on either of two sets of random number pairs (i.e. x/y-locations) generated as shown here:

size_t randomdatacolx_small=datastore1->addColumn("random data, x");
size_t randomdatacoly_small=datastore1->addColumn("random data, y");
@@ -185,8 +185,8 @@

gDataHist->setTitle(QString("random data, $N="+QString::number(datastore1->getRows(randomdatacoldist))+"$"));
This implements xy scatter plots (like JKQTPXYScatterGraph), but the color and size of the symbols ma...
Definition jkqtpscatter.h:153
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:362
-
@ JKQTPCross
a X cross
Definition jkqtpdrawingtools.h:103
-
@ JKQTPPlus
a + cross
Definition jkqtpdrawingtools.h:104
+
@ JKQTPCross
a X cross
Definition jkqtpdrawingtools.h:146
+
@ JKQTPPlus
a + cross
Definition jkqtpdrawingtools.h:147

In addition to get an idea of the used distributions, we can add two ellipses indicating the (doubled) standard deviations of the two distributions:

// 2.3. to visualize the initial distributions, we draw an ellipse indicating the
// variance of the distributions
@@ -197,7 +197,7 @@

This JKQTPGeometricPlotElement is used to draw an ellipse.
Definition jkqtpgeoshapes.h:300

The resulting plot looks like this:

datastore_statistics_2d_scatteronly

-

+

Marginal Statistics

To explore the statistical properties of a 2D dataset, it is often useful to draw the marginal histograms, i.e. the histograms of one of the two variables. To do so, we use the function jkqtpstatAddHHistogram1DAutoranged() and jkqtpstatAddVHistogram1DAutoranged() that were introduced in Advanced 1-Dimensional Statistics with JKQTPDatastore and are explained in detail there:

jkqtpstatAddHHistogram1DAutoranged(plothistBottom->getPlotter(), datastore1->begin(randomdatacolx), datastore1->end(randomdatacolx), 1.0, true);
@@ -247,7 +247,7 @@

JKQTPXYLineGraph * jkqtpstatAddVKDE1DAutoranged(JKQTBasePlotter *plotter, InputIt first, InputIt last, int Nout=100, const std::function< double(double)> &kernel=std::function< double(double)>(&jkqtpstatKernel1DGaussian), double bandwidth=1.0, bool cummulative=false, const QString &KDEcolumnBaseName=QString("KDE"))
calculate an autoranged vertical KDE and add a JKQTPXYLineGraph to the given plotter,...
Definition jkqtpstatisticsadaptors.h:1457
JKQTPXYLineGraph * jkqtpstatAddHKDE1DAutoranged(JKQTBasePlotter *plotter, InputIt first, InputIt last, int Nout=100, const std::function< double(double)> &kernel=std::function< double(double)>(&jkqtpstatKernel1DGaussian), double bandwidth=1.0, bool cummulative=false, const QString &KDEcolumnBaseName=QString("KDE"))
calculate an autoranged KDE and add a JKQTPXYLineGraph to the given plotter, where the KDE is calcula...
Definition jkqtpstatisticsadaptors.h:1279

datastore_statistics_2d_marginkde

-

+

2D Histogram

Calculating 2D-Histograms is implemented in jkqtpstatHistogram2D() from the JKQTPlotter Statistics Library. This functions calculates a histogram on a given grid with the first bin at xmin,ymin and the last bin at xmax,ymax, containing Nx,Ny bins in x-/y-direction. You can use the result to fill new image column (with Nx columns and Ny rows) in a JKQTPDatastore, which can then be used to draw the histogram.

First we have to determine the x- and y-range of data and calculate the number of bins from these:

@@ -282,7 +282,7 @@

JKQTPColumnContourPlot * jkqtpstatAddHistogram2DContour(JKQTBasePlotter *plotter, InputItX firstX, InputItX lastX, InputItY firstY, InputItY lastY, size_t xbins=10, size_t ybins=10, bool normalized=true, const QString &histogramcolumnBaseName=QString("histogram"), double *oxmin=nullptr, double *oxmax=nullptr, double *oymin=nullptr, double *oymax=nullptr)
calculate calculate a 2-dimensional histogram and add a JKQTPColumnContourPlot to the given plotter,...
Definition jkqtpstatisticsadaptors.h:1114

These differ in the type of plot that is added jkqtpstatAddHistogram2DImage() adds an image graph (JKQTPColumnMathImage) and jkqtpstatAddHistogram2DContour() adds a contour plot (JKQTPColumnContourPlot). A contour plot may look like this:

datastore_statistics_2d_histcontour

-

+

Kernel Density Estimates (KDE)

Especially when only few samples from a distribution are available, histograms are not good at representing the underlying data distribution. In such cases, Kernel Density Estimates (KDE) can help, which are basically a smoothed variant of a histogram. The JKQTPlotter Statistics Library supports calculating them via e.g. jkqtpstatKDE2D():

This functions calculates a histogram on a given grid with the first bin at xmin,ymin and the last bin at xmax,ymax, containing Nx,Ny bins in x-/y-direction. You can use the result to fill new image column (with Nx columns and Ny rows) in a JKQTPDatastore, which can then be used to draw the histogram.

@@ -321,7 +321,7 @@

JKQTPColumnContourPlot * jkqtpstatAddKDE2DContour(JKQTBasePlotter *plotter, InputItX firstX, InputItX lastX, InputItY firstY, InputItY lastY, size_t xbins=10, size_t ybins=10, const std::function< double(double, double)> &kernel=std::function< double(double, double)>(&jkqtpstatKernel2DGaussian), double bandwidthX=1.0, double bandwidthY=1.0, const QString &kdecolumnBaseName=QString("histogram"), double *oxmin=nullptr, double *oxmax=nullptr, double *oymin=nullptr, double *oymax=nullptr)
calculate calculate a 2-dimensional kernel density estimate (KDE) and add a JKQTPColumnContourPlot to...
Definition jkqtpstatisticsadaptors.h:1697

These differ in the type of plot that is added jkqtpstatAddKDE2DImage() adds an image graph (JKQTPColumnMathImage) and jkqtpstatAddKDE2DContour() adds a contour plot (JKQTPColumnContourPlot). the first is shown in the screenshot above, the latter looks like this:

datastore_statistics_2d_kdecontour

-

+

Screenshot of the full Program

The output of the full test program datastore_statistics_2d.cpp looks like this:

datastore_statistics_2d

@@ -333,7 +333,7 @@

diff --git a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics_grouped_stat.html b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics_grouped_stat.html index fec2b62a4ed..d283f4ecc8f 100644 --- a/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics_grouped_stat.html +++ b/_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics_grouped_stat.html @@ -170,7 +170,7 @@

gScatterForBar->setSymbolColor(QColorWithAlphaF(QColor("red"), 0.5));
This implements xy line plots. This also alows to draw symbols at the data points.
Definition jkqtplines.h:61
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:362
-
@ JKQTPCross
a X cross
Definition jkqtpdrawingtools.h:103
+
@ JKQTPCross
a X cross
Definition jkqtpdrawingtools.h:146

The resulting plot looks like this:

datastore_groupedstat_barchartrawdata

@@ -304,7 +304,7 @@

gScatterErr->setSymbolType(JKQTPFilledTriangle);
gScatterErr->setDrawLine(false);
This implements xy line plots with x and y error indicators.
Definition jkqtplines.h:112
-
@ JKQTPFilledTriangle
a filled triangle (tip at top)
Definition jkqtpdrawingtools.h:110
+
@ JKQTPFilledTriangle
a filled triangle (tip at top)
Definition jkqtpdrawingtools.h:153

The resulting plot looks like this:

datastore_groupedstat_scatter

In order to safe yo the typing of the code above, shortcuts in the form of adaptors exist:

@@ -329,7 +329,7 @@

diff --git a/_j_k_q_t_plotter_boxplot_styling.html b/_j_k_q_t_plotter_boxplot_styling.html index 416d42b705e..e64e1d5d577 100644 --- a/_j_k_q_t_plotter_boxplot_styling.html +++ b/_j_k_q_t_plotter_boxplot_styling.html @@ -231,7 +231,7 @@
This JKQTPPlotAnnotationElement is used to display text. It uses the JKQTMathText class in order to d...
Definition jkqtpgeoannotations.h:185
@ MeanAsLine
draw mean as a lie (specified by the pen settings in JKQTPGraphSymbolStyleMixin)
Definition jkqtpboxplotstylingmixins.h:204
@ MeanAsSymbol
draw mean as a symbol (specified by the settings in JKQTPGraphSymbolStyleMixin)
Definition jkqtpboxplotstylingmixins.h:203
-
@ JKQTPFilledTriangle
a filled triangle (tip at top)
Definition jkqtpdrawingtools.h:110
+
@ JKQTPFilledTriangle
a filled triangle (tip at top)
Definition jkqtpdrawingtools.h:153

The result looks like this:

test_styledboxplot

@@ -242,7 +242,7 @@ diff --git a/_j_k_q_t_plotter_boxplots_graphs.html b/_j_k_q_t_plotter_boxplots_graphs.html index 1f6be3f2030..20419ba9e55 100644 --- a/_j_k_q_t_plotter_boxplots_graphs.html +++ b/_j_k_q_t_plotter_boxplots_graphs.html @@ -178,7 +178,7 @@
// 6.6 change box width to 75% of distance
graphh->setBoxWidthRelative(0.75);
JKQTPFinalAct(F f) noexcept
Definition jkqtpcodestructuring.h:50
-
@ JKQTPFilledStar
a filled diamond
Definition jkqtpdrawingtools.h:114
+
@ JKQTPFilledStar
a filled diamond
Definition jkqtpdrawingtools.h:157

The result looks like this:

boxplot

In addition to the simple box plots, the image above also shows outliers as small circles. these need to be drawn with a separate JKQTPXYLineGraph:

@@ -208,7 +208,7 @@
graphOutliers->setDrawLine(false);
graphOutliers->setSymbolSize(7);
This implements xy line plots. This also alows to draw symbols at the data points.
Definition jkqtplines.h:61
-
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:105
+
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:148
@@ -217,7 +217,7 @@ diff --git a/_j_k_q_t_plotter_contour_plot.html b/_j_k_q_t_plotter_contour_plot.html index 7941021989e..f6b4a29542e 100644 --- a/_j_k_q_t_plotter_contour_plot.html +++ b/_j_k_q_t_plotter_contour_plot.html @@ -249,7 +249,7 @@

diff --git a/_j_k_q_t_plotter_date_time_axes.html b/_j_k_q_t_plotter_date_time_axes.html index 7574f48ab63..aa8946b3fc2 100644 --- a/_j_k_q_t_plotter_date_time_axes.html +++ b/_j_k_q_t_plotter_date_time_axes.html @@ -117,11 +117,11 @@

Table of Contents

-
-

+

Date Axis

This project (see ./examples/dateaxes/) simply creates a JKQTPlotter widget (as a new window) with the X-axis showing time or date(-time) values, formated as such.

The source code of the main application can be found in dateaxes.cpp.

@@ -198,7 +198,7 @@
// add the graph to the plot, so it is actually displayed
This implements xy line plots with x and y error indicators.
Definition jkqtplines.h:112
-
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:101
+
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:144

Finally the x-axis is formatted to display dates (see Qt-Documentation of QDateTime::toString():

// 7. format the plot
// set the title above the plot, use LaTeX instructions to make text bold
plot.getPlotter()->setPlotLabel("\\textbf{Weather in Gelsenkirchen, 2017-2018}");
@@ -212,7 +212,7 @@
@ JKQTPCALTdatetime
show numbers as times
Definition jkqtptools.h:455

The result looks like this:

symbols_and_styles

-

+

Time Axis

A second variant (see the example CPP-file) displays data with a time-axis:

symbols_and_styles

@@ -262,7 +262,7 @@

diff --git a/_j_k_q_t_plotter_distribution_plot.html b/_j_k_q_t_plotter_distribution_plot.html index 4f44bc0e8dd..55af3e936c4 100644 --- a/_j_k_q_t_plotter_distribution_plot.html +++ b/_j_k_q_t_plotter_distribution_plot.html @@ -255,7 +255,7 @@
This implements line plots where the data is taken from a user supplied function .
Definition jkqtpevaluatedfunction.h:289
plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)
Definition jkqtplotter.h:364
@ JKQTPKeyInsideTopLeft
the key is positioned inside on the top-left
Definition jkqtptools.h:581
-
@ JKQTPFilledCircle
a filled circle
Definition jkqtpdrawingtools.h:106
+
@ JKQTPFilledCircle
a filled circle
Definition jkqtpdrawingtools.h:149

The result looks like this:

test_distributionplot

@@ -266,7 +266,7 @@ diff --git a/_j_k_q_t_plotter_doc_image_render_cmd_line_tool.html b/_j_k_q_t_plotter_doc_image_render_cmd_line_tool.html index 4edc74ac3cc..6b686b7e8a1 100644 --- a/_j_k_q_t_plotter_doc_image_render_cmd_line_tool.html +++ b/_j_k_q_t_plotter_doc_image_render_cmd_line_tool.html @@ -141,7 +141,7 @@ diff --git a/_j_k_q_t_plotter_error_bar_styles.html b/_j_k_q_t_plotter_error_bar_styles.html index db2a3ae70a6..24ac49c292a 100644 --- a/_j_k_q_t_plotter_error_bar_styles.html +++ b/_j_k_q_t_plotter_error_bar_styles.html @@ -213,7 +213,7 @@
@ JKQTPErrorSimpleBarsLines
simplified error bars and line for each data point
Definition jkqtptools.h:710
@ JKQTPErrorBarsLines
error bars and lines for each data point
Definition jkqtptools.h:715
@ JKQTPErrorBars
error bars for each data point
Definition jkqtptools.h:708
-
@ JKQTPCross
a X cross
Definition jkqtpdrawingtools.h:103
+
@ JKQTPCross
a X cross
Definition jkqtpdrawingtools.h:146

The error styles are set in these lines:

// set error style, for the y-axis
// no error indicators for the x-values
@@ -253,7 +253,7 @@ diff --git a/_j_k_q_t_plotter_eval_curves.html b/_j_k_q_t_plotter_eval_curves.html index 0a93b16f3d5..0facd5e54f1 100644 --- a/_j_k_q_t_plotter_eval_curves.html +++ b/_j_k_q_t_plotter_eval_curves.html @@ -184,7 +184,7 @@

diff --git a/_j_k_q_t_plotter_filled_graphs.html b/_j_k_q_t_plotter_filled_graphs.html index e68d5bca475..2b7568b3d70 100644 --- a/_j_k_q_t_plotter_filled_graphs.html +++ b/_j_k_q_t_plotter_filled_graphs.html @@ -171,7 +171,7 @@ diff --git a/_j_k_q_t_plotter_filled_graphs_error_bars.html b/_j_k_q_t_plotter_filled_graphs_error_bars.html index af5d7e5a6e8..f9b418ae174 100644 --- a/_j_k_q_t_plotter_filled_graphs_error_bars.html +++ b/_j_k_q_t_plotter_filled_graphs_error_bars.html @@ -192,7 +192,7 @@ diff --git a/_j_k_q_t_plotter_function_plots.html b/_j_k_q_t_plotter_function_plots.html index d2f9447c58a..e99409d5e3b 100644 --- a/_j_k_q_t_plotter_function_plots.html +++ b/_j_k_q_t_plotter_function_plots.html @@ -216,7 +216,7 @@

diff --git a/_j_k_q_t_plotter_geometric_arrows.html b/_j_k_q_t_plotter_geometric_arrows.html index 2d1081dcf3f..f5f673d03f3 100644 --- a/_j_k_q_t_plotter_geometric_arrows.html +++ b/_j_k_q_t_plotter_geometric_arrows.html @@ -138,10 +138,10 @@

C++11 finally construct (executes a callable-object when the edestructor is executed)
Definition jkqtpcodestructuring.h:48
This convenience specialisation of JKQTPGeoLine is used to draw a line with decorations (e....
Definition jkqtpgeolines.h:190
This JKQTPPlotAnnotationElement is used to display text. It uses the JKQTMathText class in order to d...
Definition jkqtpgeoannotations.h:185
-
JKQTPLineDecoratorStyle
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:322
+
JKQTPLineDecoratorStyle
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:365
JKQTCOMMON_LIB_EXPORT QString JKQTPLineDecoratorStyle2String(JKQTPLineDecoratorStyle pos)
converts a JKQTPLineDecoratorStyle variable into a identifier string
-
@ JKQTPNoDecorator
no decorator, i.e. a simple line-end
Definition jkqtpdrawingtools.h:323
-
@ JKQTPLineDecoratorCount
can be used to iterate over all symbols using: for (int i=0; i<static_cast<int>(JKQTPLineDecoratorCou...
Definition jkqtpdrawingtools.h:349
+
@ JKQTPNoDecorator
no decorator, i.e. a simple line-end
Definition jkqtpdrawingtools.h:366
+
@ JKQTPLineDecoratorCount
can be used to iterate over all symbols using: for (int i=0; i<static_cast<int>(JKQTPLineDecoratorCou...
Definition jkqtpdrawingtools.h:392

Here is the resulting table:

geo_arrow_tips

Note how the head-size scales with the line-width, but not linearly, but rather sub-linearly, so the tips do not grow too strongly.

@@ -162,8 +162,8 @@

polyLine->setTailDecoratorStyle(JKQTPCircleDecorator);
plot.addGraph(polyLine);
This JKQTPGeometricPlotElement is used to draw a poly line.
Definition jkqtpgeolines.h:378
-
@ JKQTPCircleDecorator
an open circle tip
Definition jkqtpdrawingtools.h:332
-
@ JKQTPFilledDoubleArrow
a nice filled double-arrow tip
Definition jkqtpdrawingtools.h:331
+
@ JKQTPCircleDecorator
an open circle tip
Definition jkqtpdrawingtools.h:375
+
@ JKQTPFilledDoubleArrow
a nice filled double-arrow tip
Definition jkqtpdrawingtools.h:374

Here is the result:

geo_arrow_polylines

For the class JKQTPGeoInfiniteLine the start can be decorated with an arrow (only if two_sided==false!):

@@ -185,7 +185,7 @@

diff --git a/_j_k_q_t_plotter_geometric_coordinate_axis0.html b/_j_k_q_t_plotter_geometric_coordinate_axis0.html index 0e9e0946028..c169d1b06c6 100644 --- a/_j_k_q_t_plotter_geometric_coordinate_axis0.html +++ b/_j_k_q_t_plotter_geometric_coordinate_axis0.html @@ -146,7 +146,7 @@ diff --git a/_j_k_q_t_plotter_geometric_graphs.html b/_j_k_q_t_plotter_geometric_graphs.html index 6c1e4b91bb1..7e57f337c0f 100644 --- a/_j_k_q_t_plotter_geometric_graphs.html +++ b/_j_k_q_t_plotter_geometric_graphs.html @@ -209,8 +209,8 @@
This JKQTPGeometricPlotElement is used to draw a rectangle.
Definition jkqtpgeoshapes.h:49
This virtual JKQTPPlotAnnotationElement descendent may be used to display a single symbol (marker).
Definition jkqtpgeoannotations.h:42
This JKQTPPlotAnnotationElement is used to display text. It uses the JKQTMathText class in order to d...
Definition jkqtpgeoannotations.h:185
-
@ JKQTPFilledArrow
a nice filled arrow tip
Definition jkqtpdrawingtools.h:325
-
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:105
+
@ JKQTPFilledArrow
a nice filled arrow tip
Definition jkqtpdrawingtools.h:368
+
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:148

The result of the example combines all these elements and looks like this:

geometric

The example also adds some control-widgets that allow to change the properties of the plot, especially whether the aspect ratio is maintained and whether the axes have logarithmic scaling. This is achieved by code like this:

// 1. create a Widget with a plotter and some control-elements
@@ -272,7 +272,7 @@ diff --git a/_j_k_q_t_plotter_geometric_graphs_simple.html b/_j_k_q_t_plotter_geometric_graphs_simple.html index e89dcff89b5..815ee30f495 100644 --- a/_j_k_q_t_plotter_geometric_graphs_simple.html +++ b/_j_k_q_t_plotter_geometric_graphs_simple.html @@ -126,7 +126,7 @@ diff --git a/_j_k_q_t_plotter_image_plot.html b/_j_k_q_t_plotter_image_plot.html index e9549c2f635..c42ed1d08ac 100644 --- a/_j_k_q_t_plotter_image_plot.html +++ b/_j_k_q_t_plotter_image_plot.html @@ -271,7 +271,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_c_img.html b/_j_k_q_t_plotter_image_plot_c_img.html index 6071989627a..4853e605bb8 100644 --- a/_j_k_q_t_plotter_image_plot_c_img.html +++ b/_j_k_q_t_plotter_image_plot_c_img.html @@ -254,7 +254,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_modifier.html b/_j_k_q_t_plotter_image_plot_modifier.html index 4a1c4673842..33a9a93bdc5 100644 --- a/_j_k_q_t_plotter_image_plot_modifier.html +++ b/_j_k_q_t_plotter_image_plot_modifier.html @@ -266,7 +266,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_no_datastore.html b/_j_k_q_t_plotter_image_plot_no_datastore.html index 1b73426bc1e..15f7c65c9cc 100644 --- a/_j_k_q_t_plotter_image_plot_no_datastore.html +++ b/_j_k_q_t_plotter_image_plot_no_datastore.html @@ -238,7 +238,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_open_c_v.html b/_j_k_q_t_plotter_image_plot_open_c_v.html index 9ec9622f092..4ea2c4d8605 100644 --- a/_j_k_q_t_plotter_image_plot_open_c_v.html +++ b/_j_k_q_t_plotter_image_plot_open_c_v.html @@ -256,7 +256,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_q_image_r_g_b.html b/_j_k_q_t_plotter_image_plot_q_image_r_g_b.html index e130d1b6b78..09e258aab94 100644 --- a/_j_k_q_t_plotter_image_plot_q_image_r_g_b.html +++ b/_j_k_q_t_plotter_image_plot_q_image_r_g_b.html @@ -159,7 +159,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_r_g_b_c_img.html b/_j_k_q_t_plotter_image_plot_r_g_b_c_img.html index 654e386c309..f77cd1ce7bd 100644 --- a/_j_k_q_t_plotter_image_plot_r_g_b_c_img.html +++ b/_j_k_q_t_plotter_image_plot_r_g_b_c_img.html @@ -239,7 +239,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_r_g_b_open_c_v.html b/_j_k_q_t_plotter_image_plot_r_g_b_open_c_v.html index 13107391326..d46352ef1d3 100644 --- a/_j_k_q_t_plotter_image_plot_r_g_b_open_c_v.html +++ b/_j_k_q_t_plotter_image_plot_r_g_b_open_c_v.html @@ -238,7 +238,7 @@ diff --git a/_j_k_q_t_plotter_image_plot_user_palette.html b/_j_k_q_t_plotter_image_plot_user_palette.html index 342d78d98b9..4cfd1c03f8a 100644 --- a/_j_k_q_t_plotter_image_plot_user_palette.html +++ b/_j_k_q_t_plotter_image_plot_user_palette.html @@ -322,7 +322,7 @@

diff --git a/_j_k_q_t_plotter_impulse_plots.html b/_j_k_q_t_plotter_impulse_plots.html index 9f8e6391b9c..78c337aeb18 100644 --- a/_j_k_q_t_plotter_impulse_plots.html +++ b/_j_k_q_t_plotter_impulse_plots.html @@ -156,7 +156,7 @@
void setSymbolType(JKQTPGraphSymbols __value)
set the type of the graph symbol
void setDrawSymbols(bool __value)
indicates whether to draw symbols at the top of the impulse
-
@ JKQTPFilledStar
a filled diamond
Definition jkqtpdrawingtools.h:114
+
@ JKQTPFilledStar
a filled diamond
Definition jkqtpdrawingtools.h:157

This code snippet results in a plot like this:

impulsesplot_symbols

Finally you can move the baseline (i.e. the level, where the impulses start, which is typically x=0 or y=0) in the classes JKQTPImpulsesVerticalGraph and JKQTPImpulsesHorizontalGraph:

@@ -172,7 +172,7 @@ diff --git a/_j_k_q_t_plotter_log_axes.html b/_j_k_q_t_plotter_log_axes.html index dc040d17620..d13aa33f39f 100644 --- a/_j_k_q_t_plotter_log_axes.html +++ b/_j_k_q_t_plotter_log_axes.html @@ -154,7 +154,7 @@
void setYColumn(int __value)
the column that contains the y-component of the datapoints
void setXColumn(int __value)
the column that contains the x-component of the datapoints
This implements xy line plots. This also alows to draw symbols at the data points.
Definition jkqtplines.h:61
-
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:101
+
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:144

Then a JKQTPGeoText is added to the graph, which shows the function plotted in the plot:

// 4. Also we add a text-element in the plot to show the plotted function
// This element (JKQTPGeoText) is taken from the set of geometric elements
// and is simply parametrized by a position (1.25/10) and the text to display.
@@ -217,7 +217,7 @@ diff --git a/_j_k_q_t_plotter_mandelbrot.html b/_j_k_q_t_plotter_mandelbrot.html index c0160de0195..86e094313e4 100644 --- a/_j_k_q_t_plotter_mandelbrot.html +++ b/_j_k_q_t_plotter_mandelbrot.html @@ -287,7 +287,7 @@

diff --git a/_j_k_q_t_plotter_multi_plot_layout.html b/_j_k_q_t_plotter_multi_plot_layout.html index 8d2f7055acf..26beb18d0d0 100644 --- a/_j_k_q_t_plotter_multi_plot_layout.html +++ b/_j_k_q_t_plotter_multi_plot_layout.html @@ -204,7 +204,7 @@ diff --git a/_j_k_q_t_plotter_multi_threaded.html b/_j_k_q_t_plotter_multi_threaded.html index 46e1a70f576..19d84f969fe 100644 --- a/_j_k_q_t_plotter_multi_threaded.html +++ b/_j_k_q_t_plotter_multi_threaded.html @@ -158,7 +158,7 @@
C++11 finally construct (executes a callable-object when the edestructor is executed)
Definition jkqtpcodestructuring.h:48
JKQTPFinalAct(F f) noexcept
Definition jkqtpcodestructuring.h:50
This implements xy line plots. This also alows to draw symbols at the data points.
Definition jkqtplines.h:61
-
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:101
+
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:144

The main application in multithreaded.cpp then uses this method/thread-class to perform a test: First the function is run several times serially and then an equal amount of times in parallel.

#define NUM_PLOTS 8
#define NUM_GRAPHS 6
@@ -236,7 +236,7 @@ diff --git a/_j_k_q_t_plotter_param_scatter.html b/_j_k_q_t_plotter_param_scatter.html index 276d97fcb0c..532c19e6a16 100644 --- a/_j_k_q_t_plotter_param_scatter.html +++ b/_j_k_q_t_plotter_param_scatter.html @@ -154,8 +154,8 @@
graph6->setSymbolType(JKQTPNoSymbol);
graph6->setTitle("6: line width");
plot.addGraph(graph6);
-
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:101
-
@ JKQTPFilledCircle
a filled circle
Definition jkqtpdrawingtools.h:106
+
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:144
+
@ JKQTPFilledCircle
a filled circle
Definition jkqtpdrawingtools.h:149

Finally you can set the color of each symbol, based on data in the column colorColumn. Here two possibilities exist: First you can store the RGB(A) value for each datapoint explicitly. For this, you first need to create the data in the column, using the Qt-function qRgb() or [qRgba()}(http://doc.qt.io/qt-5/qcolor.html#qRgba):

const int Ndata=10; // number of plot points in each curve
for (int i=0; i<Ndata; i++) {
@@ -173,7 +173,7 @@
graph4->setTitle("4: RGB-color");
plot.addGraph(graph4);
-
@ JKQTPFilledDownTriangle
a filled triangle (tip at bottom)
Definition jkqtpdrawingtools.h:149
+
@ JKQTPFilledDownTriangle
a filled triangle (tip at bottom)
Definition jkqtpdrawingtools.h:192

The second variant for setting the color of each datapoint is by mapping the values in the column to a color palette (JKQTPMathImageRYGB in this example). For this you simply need to define the color coumn and the palette to use. By default, the color palette spans the full range of values in colorColumn:

graph2->setXColumn(columnX);
graph2->setYColumn(columnY2);
@@ -185,7 +185,7 @@
graph2->getColorBarRightAxis()->setAxisLabel("color scale for graph2");
plot.addGraph(graph2);
@ JKQTPMathImageRYGB
Definition jkqtpbasicimagetools.h:102
-
@ JKQTPFilledRect
a filled rectangle
Definition jkqtpdrawingtools.h:108
+
@ JKQTPFilledRect
a filled rectangle
Definition jkqtpdrawingtools.h:151

Note: If you want to set the range manually, use ste_imageMin() and setImageMax() after setting setAutoImageRange(false).

Note also that it is possible to combine any of parametrizations above in a single graph, by setting two or more columns:

graph5->setXColumn(columnX);
@@ -216,9 +216,9 @@
}
});
-
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:100
-
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:105
-
@ JKQTPPlus
a + cross
Definition jkqtpdrawingtools.h:104
+
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:143
+
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:148
+
@ JKQTPPlus
a + cross
Definition jkqtpdrawingtools.h:147

This will result in symbols as shown below:

JKQTPXYParametrizedScatterGraph_SymbolFunctor.png

As an alternaitve for symbols, you can define the functor also in terms of a QMap:

@@ -241,7 +241,7 @@ diff --git a/_j_k_q_t_plotter_param_scatter_image.html b/_j_k_q_t_plotter_param_scatter_image.html index 972e0d317dd..33e9c44e6e7 100644 --- a/_j_k_q_t_plotter_param_scatter_image.html +++ b/_j_k_q_t_plotter_param_scatter_image.html @@ -155,7 +155,7 @@
plot.addGraph(graph1);
This implements xy scatter plots (like JKQTPXYScatterGraph), but the color and size of the symbols ma...
Definition jkqtpscatter.h:153
@ JKQTPMathImageMATLAB
Definition jkqtpbasicimagetools.h:100
-
@ JKQTPFilledCircle
a filled circle
Definition jkqtpdrawingtools.h:106
+
@ JKQTPFilledCircle
a filled circle
Definition jkqtpdrawingtools.h:149

For illustrative purposes, the original image is shown at the bottom-left:

graph2->setImage(image);
graph2->setX(0);
@@ -194,7 +194,7 @@ diff --git a/_j_k_q_t_plotter_parametric_curves.html b/_j_k_q_t_plotter_parametric_curves.html index e8b9ef99464..143df4b29f1 100644 --- a/_j_k_q_t_plotter_parametric_curves.html +++ b/_j_k_q_t_plotter_parametric_curves.html @@ -142,7 +142,7 @@
graph1->setTitle("one-colored spiral");
plot.addGraph(graph1);
This implements xy line plots. This also alows to draw symbols at the data points.
Definition jkqtplines.h:61
-
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:101
+
@ JKQTPNoSymbol
plots no symbol at all (usefull together with error bars)
Definition jkqtpdrawingtools.h:144

If you use JKQTPXYParametrizedScatterGraph instead of JKQTPXYLineGraph, you can also modify the color of the line-segments, connecting the datapoints:

graph2->setXColumn(columnX);
graph2->setYColumn(columnY);
@@ -167,7 +167,7 @@ diff --git a/_j_k_q_t_plotter_parsed_function_plot.html b/_j_k_q_t_plotter_parsed_function_plot.html index f30df5689d5..7fc11551e94 100644 --- a/_j_k_q_t_plotter_parsed_function_plot.html +++ b/_j_k_q_t_plotter_parsed_function_plot.html @@ -178,7 +178,7 @@

diff --git a/_j_k_q_t_plotter_qt_creator.html b/_j_k_q_t_plotter_qt_creator.html index c016c046928..36b8c1da537 100644 --- a/_j_k_q_t_plotter_qt_creator.html +++ b/_j_k_q_t_plotter_qt_creator.html @@ -201,7 +201,7 @@

diff --git a/_j_k_q_t_plotter_r_g_b_image_plot.html b/_j_k_q_t_plotter_r_g_b_image_plot.html index 2fdc3327f06..f840dee61f4 100644 --- a/_j_k_q_t_plotter_r_g_b_image_plot.html +++ b/_j_k_q_t_plotter_r_g_b_image_plot.html @@ -259,7 +259,7 @@ diff --git a/_j_k_q_t_plotter_secondary_axes.html b/_j_k_q_t_plotter_secondary_axes.html index d51c03f158e..f3722e95c66 100644 --- a/_j_k_q_t_plotter_secondary_axes.html +++ b/_j_k_q_t_plotter_secondary_axes.html @@ -231,7 +231,7 @@ diff --git a/_j_k_q_t_plotter_simple_test.html b/_j_k_q_t_plotter_simple_test.html index 4e778b9f075..263a08b0c8e 100644 --- a/_j_k_q_t_plotter_simple_test.html +++ b/_j_k_q_t_plotter_simple_test.html @@ -181,7 +181,7 @@ diff --git a/_j_k_q_t_plotter_special_step_line_plot.html b/_j_k_q_t_plotter_special_step_line_plot.html index f4ed4b08f40..90c5f004c9b 100644 --- a/_j_k_q_t_plotter_special_step_line_plot.html +++ b/_j_k_q_t_plotter_special_step_line_plot.html @@ -151,7 +151,7 @@
void setYColumn(int __value)
the column that contains the y-component of the datapoints
void setXColumn(int __value)
the column that contains the x-component of the datapoints
@ JKQTPStepLeft
datapoint is on the left edge of the hor. step line
Definition jkqtptools.h:748
-
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:105
+
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:148

Note that you can configure the step type (left/center/right by graph->setSpecialLineType(JKQTPStepLeft). With graph->setFillCurve(true) you can draw the curve filled until the y=0-axis and with graph->setDrawLine(true) you can switch the line along the values on and off (e.g. to only have the filled area, but no line). With graph->setDrawSymbols(true) you can switch on drawing of symbols at the location of the data points.

... and all graphs are added to the plot:

// add the graphs to the plot, so it is actually displayed
plot.addGraph(graph);
@@ -169,7 +169,7 @@ diff --git a/_j_k_q_t_plotter_speed_test.html b/_j_k_q_t_plotter_speed_test.html index dfc7dc40c51..50d6fc493d3 100644 --- a/_j_k_q_t_plotter_speed_test.html +++ b/_j_k_q_t_plotter_speed_test.html @@ -215,7 +215,7 @@ diff --git a/_j_k_q_t_plotter_stacked_bar_chart.html b/_j_k_q_t_plotter_stacked_bar_chart.html index 322e13456dc..746b07b1d34 100644 --- a/_j_k_q_t_plotter_stacked_bar_chart.html +++ b/_j_k_q_t_plotter_stacked_bar_chart.html @@ -232,7 +232,7 @@ diff --git a/_j_k_q_t_plotter_styling.html b/_j_k_q_t_plotter_styling.html index 9d675322acc..ee8500b1989 100644 --- a/_j_k_q_t_plotter_styling.html +++ b/_j_k_q_t_plotter_styling.html @@ -219,7 +219,7 @@

diff --git a/_j_k_q_t_plotter_symbols_and_styles.html b/_j_k_q_t_plotter_symbols_and_styles.html index 54dfad7a6e7..badb31e851d 100644 --- a/_j_k_q_t_plotter_symbols_and_styles.html +++ b/_j_k_q_t_plotter_symbols_and_styles.html @@ -166,8 +166,8 @@
void setXColumn(int __value)
the column that contains the x-component of the datapoints
This implements xy line plots. This also alows to draw symbols at the data points.
Definition jkqtplines.h:61
JKQTCOMMON_LIB_EXPORT QString JKQTPGraphSymbols2NameString(JKQTPGraphSymbols pos)
converts a JKQTPGraphSymbols variable into a human-readable string
-
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:100
-
@ JKQTPMaxSymbolID
points to the last available symbol, can be used to iterate over all symbols: for (int i=0; i<=static...
Definition jkqtpdrawingtools.h:174
+
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:143
+
@ JKQTPMaxSymbolID
points to the last available symbol, can be used to iterate over all symbols: for (int i=0; i<=static...
Definition jkqtpdrawingtools.h:217
JKQTCOMMON_LIB_EXPORT QString jkqtp_QPenStyle2String(Qt::PenStyle style)
converts a QT::PenStyle into a string

In addition to the symbol type and line style, you can also alter the size of the symbols (graph->setSymbolSize(14)), the line-width used to draw them (graph->setSymbolLineWidth(1.5)) and the line width of the graph line (graph->setLineWidth(1)). If you want to switch off the line altogether, use graph->setDrawLine(false).

Note: There are additional, more advanced options for styling the graphs. See the example Advanced Line and Fill Styling for details.

@@ -181,7 +181,7 @@ diff --git a/_j_k_q_t_plotter_symbols_errors.html b/_j_k_q_t_plotter_symbols_errors.html index 83fccc6579e..8d2a86f4b21 100644 --- a/_j_k_q_t_plotter_symbols_errors.html +++ b/_j_k_q_t_plotter_symbols_errors.html @@ -185,7 +185,7 @@
This implements xy line plots with x and y error indicators.
Definition jkqtplines.h:112
plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)
Definition jkqtplotter.h:364
@ JKQTPErrorBars
error bars for each data point
Definition jkqtptools.h:708
-
@ JKQTPFilledStar
a filled diamond
Definition jkqtpdrawingtools.h:114
+
@ JKQTPFilledStar
a filled diamond
Definition jkqtpdrawingtools.h:157

The result looks like this:

symbols_and_errors

@@ -196,7 +196,7 @@ diff --git a/_j_k_q_t_plotter_user_interaction.html b/_j_k_q_t_plotter_user_interaction.html index def9e5a9194..08cc5883037 100644 --- a/_j_k_q_t_plotter_user_interaction.html +++ b/_j_k_q_t_plotter_user_interaction.html @@ -117,35 +117,35 @@
-

+

Basic Description

This project (see ./examples/test_user_interaction/) demonstrates different types of user-interactions in JKQTPlotter.

It contains a simple plot with two graphs and provides several widgets that allow to bind different user interactions to different events:

-

+

Inner Workings

The source code of the main application can be found in test_user_interaction.cpp.

The menu at the top of the window contains several of the QActions provided for user-interaction by JKQTBasePlotter:

// add some of the default QActions from the JKQTPlotter to the window menu
@@ -188,27 +188,27 @@

JKQTPFinalAct(F f) noexcept
Definition jkqtpcodestructuring.h:50
JKQTPMouseDragActions
Availble action this JKQtPlotter can perform when mouse events occur. This allows you to e....
Definition jkqtptools.h:108

As you can see, this QComboBox registers one of the available actions to the event of a left-button single mouse click without having modifiers pressed at the same time. The slot that actually reconfigures the JKQTPlotter uses the methods JKQTPlotter::deregisterMouseDragAction() and JKQTPlotter::registerMouseDragAction() to achieve this effect.

-

+

Available User-Interactions

You can play around with this example to find out about different types of user interactions. SOm of them are illustrated with animations below.

-

+

Switching Graph Visibility via Context Menu

the default context menu contains a sub-menu that allows to switch every graph and and off:

-

+

Toolbar at the top of the Plot

Each JKQTPlotter contains a toolbar that is by default invisible and appears, when the mouse moves over a designated area at the top of the plot:

You can also use the checkboxes "enable toolbar" to disable this toolbar alltogether and "toolbar 'always on'" to switch the vanishing feature off and make it visible all the time.

-

+

Mouse Position Display

The JKQTPlotter contains a small text display for the current mouse position (in plot coordinates) at the top of the graph:

-

+

Drag the Plot Viewport

You can move the viewport of the graph using the mouse ("jkqtpmdaPanPlotOnMove"-action). If you drag inside the plot window, you can move in both directions, if you drag over one of the coordinate axes, you can change the range of this axis only:

-

+

Zooming with the Mouse

There are several options to zoom, using the mouse:

  • using the mouse wheel
  • @@ -217,34 +217,34 @@

Again these actions are limited to a single axis, if the mouse is above that axis (and not inside the actual plot rectangle).

-

+

Ruler/Measurement Tool

JKQTPlotter provides a pre-built ruler tool that measures x- and y-distance between the start and end point, as well as the length of the connecting line and the angle of that line.

-

+

Data ToolTip Tool

JKQTPlotter provides a pre-built tool that, while the mouse button is pressed and the cursor is dragged over the plot, finds data points (of most graphs) near the mouse and displays their coordinates (and errors) inside a small tooltip:

-

+

Drawing Geometrical Forms

You can also use the mouse to draw various geometricals forms. When you finish drawing, a single event is emitted for that form, which contains its size and position:

-

+

Lines

-

+

Rectangles

-

+

Circles

-

+

Ellipses

-

+

Context Menus

-

+

Standard Context Menu

JKQTPlotter contains a standard context menu, which is shown if plot->setContextMenuMode(jkqtpcmmStandardContextMenu); was set. It contains several standard ways of interacting with the plot, e.g. save to file, copy to clipboard, print, switch graph visibilities, ...

@@ -266,7 +266,7 @@

}

-

+

Special Context Menu

In addition to the standard context menu, JKQTPlotter can also be configures to display a special, user-defined context menu. To do so, call plot->setContextMenuMode(jkqtpcmmSpecialContextMenu); and set your menu, by calling plot->setSpecialContextMenu(menu). You can also combine the special menu and the standard menu, by calling plot->setContextMenuMode(jkqtpcmmStandardAndSpecialContextMenu);.

@@ -277,7 +277,7 @@

diff --git a/_j_k_q_t_plotter_violinplot_graphs.html b/_j_k_q_t_plotter_violinplot_graphs.html index bfbd123273f..c2df33ae7e9 100644 --- a/_j_k_q_t_plotter_violinplot_graphs.html +++ b/_j_k_q_t_plotter_violinplot_graphs.html @@ -117,16 +117,16 @@

This project (see violinplot demonstrates how to use JKQTPlotter to draw violin plots using the classes JKQTPViolinplotVerticalElement and JKQTPViolinplotHorizontalElement. Violin plots can be thought of as an extension to box plots, as they are also used to represent the distribution of a random variable, but contain more info than the "simple" 5-number statistics used for boxplots: Violin Plots show an estimate of the desnsity distribution of the random vriable, e.g. calculated as a kernel density estimate, or as a simple histogram. The Plotting classes themselves do not calculate these estimates, but only draw them into the plot. The density estimates are calculated by functions from the JKQTPlotter Statistics Library.

The source code of the main application is (see violinplot.cpp.

-

+

Generating a test Dataset

First we generate some random numbers from a bimodal distribution (and as a by-product also from two single-distributions that form the bimodal):

size_t randomdatacol1=datastore1->addColumn("random data N(1,1)+N(6,2)");
size_t randomdatacol2=datastore1->addColumn("random data N(1,1)");
@@ -148,7 +148,7 @@

datastore1->appendToColumn(randomdatacol1, v);
}
C++11 finally construct (executes a callable-object when the edestructor is executed)
Definition jkqtpcodestructuring.h:48
-

+

Visualizing data as a Rug Plot

Samples from the bimodal (built from two gaussian distributions d1 and d2) are collected in randomdatacol1, whereas randomdatacol2 and randomdatacol3 collect those numbers that were drawn from d1 or d2 respectively.

Such data can be visualized by JKQTPSingleColumnSymbolsGraph, here using a rug plot (using gData1->setPositionScatterStyle(JKQTPSingleColumnSymbolsGraph::RugPlot); ... but also e.g. a ee swarm plot would be possible):

@@ -161,7 +161,7 @@

@ Y
the data for a JKQTPSingleColumnGraph is data belonging to the y-axis of the plot
plots a 1-column set of data-values with symbols onto a JKQtPlotter/JKQtBasePlotter....
Definition jkqtpsinglecolumnsymbols.h:53
@ RugPlot
like NoScatter but draws each data-point as a horzintal/vertical line, centered around position,...
Definition jkqtpsinglecolumnsymbols.h:59
-

+

Drawing the (vertical) Violin Plot

Now we need to calculate the kernel density estimate from the data in randomdatacol1 and store the result in two new columns cViol1Cat and cViol1Freq:

size_t cViol1Cat=datastore1->addColumn("violin 1, cat");
@@ -207,11 +207,11 @@

void jkqtpstatHistogram1DAutoranged(InputIt first, InputIt last, OutputIt histogramXOut, OutputIt histogramYOut, int bins=11, bool normalized=true, bool cummulative=false, JKQTPStatHistogramBinXMode binXMode=JKQTPStatHistogramBinXMode::XIsLeft)
calculate an autoranged 1-dimensional histogram from the given data range first .....
Definition jkqtpstathistogram.h:73
@ XIsMid
x-location is the middle of the bin
-

+

Drawing a horizontal Violin Plot

Finally note that if you use JKQTPViolinplotHorizontalElement instead of the JKQTPViolinplotVerticalElement used above, you can also draw horizontal violin plots:

violinplot_hor

-

+

Adapters as shortcuts to drawing Violin Plots

Note that there also exist "adapters" that allow to draw violin plots in one line of code:

jkqtpstatAddVViolinplotHistogramAndOutliers(plot->getPlotter(), datastore1->begin(randomdatacol1), datastore1->end(randomdatacol1), -5);
jkqtpstatAddHViolinplotHistogramAndOutliers(plot->getPlotter(), datastore1->begin(randomdatacol1), datastore1->end(randomdatacol1), -5);
@@ -237,7 +237,7 @@

diff --git a/_j_k_q_t_plotter_wiggle_plots.html b/_j_k_q_t_plotter_wiggle_plots.html index 5011c9c1242..c81bd1490df 100644 --- a/_j_k_q_t_plotter_wiggle_plots.html +++ b/_j_k_q_t_plotter_wiggle_plots.html @@ -250,7 +250,7 @@

diff --git a/_j_k_q_t_plotterparamscatter_custom_symbol.html b/_j_k_q_t_plotterparamscatter_custom_symbol.html index d3495a52aa6..bbb7fc6e28a 100644 --- a/_j_k_q_t_plotterparamscatter_custom_symbol.html +++ b/_j_k_q_t_plotterparamscatter_custom_symbol.html @@ -166,7 +166,7 @@
return static_cast<JKQTPGraphSymbols>(floor(symbolcolumn));
}, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
plot.addGraph(graph1);
-
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:100
+
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:143

The result looks like this:

paramscatterplot_customsymbol

@@ -177,7 +177,7 @@ diff --git a/_j_k_q_t_plotterscatter.html b/_j_k_q_t_plotterscatter.html index 23424e8fff5..aace1411366 100644 --- a/_j_k_q_t_plotterscatter.html +++ b/_j_k_q_t_plotterscatter.html @@ -157,7 +157,7 @@ diff --git a/_j_k_q_t_plotterscatter_custom_symbol.html b/_j_k_q_t_plotterscatter_custom_symbol.html index d17d9d5ed90..ec918b25b63 100644 --- a/_j_k_q_t_plotterscatter_custom_symbol.html +++ b/_j_k_q_t_plotterscatter_custom_symbol.html @@ -164,8 +164,8 @@
graph4->setTitle(QObject::tr("hearts"));
plot.addGraph(graph4);
JKQTPXYScatterGraph
This implements xy scatter plots. This also alows to draw symbols at the data points.
Definition jkqtpscatter.h:59
-
JKQTPCharacterSymbol
@ JKQTPCharacterSymbol
draw a font-character as symbol with defined fill-brush (taken from symbol-color),...
Definition jkqtpdrawingtools.h:177
-
JKQTPFilledCharacterSymbol
@ JKQTPFilledCharacterSymbol
draw a font-character as symbol with defined outline-pen and fill-brush, you can use any character fr...
Definition jkqtpdrawingtools.h:180
+
JKQTPCharacterSymbol
@ JKQTPCharacterSymbol
draw a font-character as symbol with defined fill-brush (taken from symbol-color),...
Definition jkqtpdrawingtools.h:220
+
JKQTPFilledCharacterSymbol
@ JKQTPFilledCharacterSymbol
draw a font-character as symbol with defined outline-pen and fill-brush, you can use any character fr...
Definition jkqtpdrawingtools.h:223

The more advanced graphs graph1 and graph2 use JKQTPRegisterCustomGraphSymbol() to register functors that draw user-specific symbols:

JKQTPCustomGraphSymbolFunctor f=[](QPainter& p) {
p.setBrush(Qt::NoBrush); // ensure that circles are not drawn filled
p.drawEllipse(QPointF(-0.33, -0.33/4.0), 0.33/2.0, 0.33/2.0);
@@ -207,7 +207,7 @@
graph2->setTitle(QObject::tr("colored olympics"));
plot.addGraph(graph2);
std::function< void(QPainter &p)> JKQTPCustomGraphSymbolFunctor
functor used to draw a custom JKQTPGraphSymbols
Definition jkqtpdrawingtools.h:76
-
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:100
+
JKQTPGraphSymbols
symbols that can be used to plot a datapoint for a graph
Definition jkqtpdrawingtools.h:143
JKQTCOMMON_LIB_EXPORT JKQTPGraphSymbols JKQTPRegisterCustomGraphSymbol(JKQTPCustomGraphSymbolFunctor &&)
register a JKQTPCustomGraphSymbolFunctor that draws a custom symbol.Returns an ID that allows to acce...

Bothe variant show the olympic rings. graph1 uses the (cycling) default graph color and graph2 draws with user-defined colors.

The result looks like this:

@@ -220,7 +220,7 @@ diff --git a/annotated.html b/annotated.html index cb5dedc3a23..9c731f9bce1 100644 --- a/annotated.html +++ b/annotated.html @@ -206,7 +206,7 @@  CLayoutInfoDescribes the layout of the whole node  CJKQTMathTextWhitespaceNodeSubclass representing one whitepsace node in the syntax tree  CWhitespacePropsDescribes a whitespace - CJKQTPAdaptiveFunctionGraphEvaluatorAdaptive drawing of a function graph, specified by two function $ f_x(t) $ and $ f_y(t) $ evaluated over a parameter range $ t\in\left[t_\text{min}..t_\text{max}\right] $ + CJKQTPAdaptiveFunctionGraphEvaluatorAdaptive drawing of a function graph, specified by two function $ f_x(t) $ and $ f_y(t) $ evaluated over a parameter range $ t\in\left[t_\text{min}..t_\text{max}\right] $  CJKQTPArrayScopedPointerThis class ensures that the given pointer is freed when the class is destroyed  CJKQTPAutoOutputTimerRAII construct that times its lifetime, outputting properly indented qDebug()-message  CJKQTPBarGraphBaseThis is a base-class for all bar graphs with vertical or horizontal orientation (the orientation is implemented in dervied classes!) @@ -428,7 +428,7 @@ diff --git a/class_j_k_q_t_annotations_specific_style_properties-members.html b/class_j_k_q_t_annotations_specific_style_properties-members.html index 5db1aed5d7d..6bbe2927e75 100644 --- a/class_j_k_q_t_annotations_specific_style_properties-members.html +++ b/class_j_k_q_t_annotations_specific_style_properties-members.html @@ -129,7 +129,7 @@ - + @@ -177,7 +177,7 @@ diff --git a/class_j_k_q_t_annotations_specific_style_properties.html b/class_j_k_q_t_annotations_specific_style_properties.html index 797f2503898..84e086b68af 100644 --- a/class_j_k_q_t_annotations_specific_style_properties.html +++ b/class_j_k_q_t_annotations_specific_style_properties.html @@ -141,7 +141,7 @@
Collaboration diagram for JKQTAnnotationsSpecificStyleProperties:
-
+
[legend]
defaultColorJKQTGeometricSpecificStyleProperties
defaultErrorIndicatorWidthJKQTGraphsSpecificStyleProperties
defaultFillStyleJKQTGeometricSpecificStyleProperties
defaultFillStyleJKQTGeometricSpecificStyleProperties
defaultFontNameJKQTAnnotationsSpecificStyleProperties
defaultFontSizeJKQTAnnotationsSpecificStyleProperties
defaultHeadDecoratorSizeFactorJKQTGraphsSpecificStyleProperties
- - - + + + @@ -573,7 +573,7 @@

diff --git a/class_j_k_q_t_annotations_specific_style_properties__coll__graph.map b/class_j_k_q_t_annotations_specific_style_properties__coll__graph.map index 493879a731e..e55853b3f92 100644 --- a/class_j_k_q_t_annotations_specific_style_properties__coll__graph.map +++ b/class_j_k_q_t_annotations_specific_style_properties__coll__graph.map @@ -1,9 +1,11 @@ - - - + + + - + + + diff --git a/class_j_k_q_t_annotations_specific_style_properties__coll__graph.md5 b/class_j_k_q_t_annotations_specific_style_properties__coll__graph.md5 index a31105e9a64..864ac9c0d8f 100644 --- a/class_j_k_q_t_annotations_specific_style_properties__coll__graph.md5 +++ b/class_j_k_q_t_annotations_specific_style_properties__coll__graph.md5 @@ -1 +1 @@ -865a93e8e27b38fc981b29f54f832ac2 \ No newline at end of file +52729ac5670c704ebeb464221ad94b88 \ No newline at end of file diff --git a/class_j_k_q_t_annotations_specific_style_properties__coll__graph.svg b/class_j_k_q_t_annotations_specific_style_properties__coll__graph.svg index 6485f069c59..700e5f83773 100644 --- a/class_j_k_q_t_annotations_specific_style_properties__coll__graph.svg +++ b/class_j_k_q_t_annotations_specific_style_properties__coll__graph.svg @@ -4,8 +4,8 @@ - + - + JKQTAnnotationsSpecificStyleProperties Node1 - -JKQTAnnotationsSpecificStyle -Properties + +JKQTAnnotationsSpecificStyle +Properties @@ -32,9 +32,9 @@ Node2 - -JKQTGeometricSpecificStyle -Properties + +JKQTGeometricSpecificStyle +Properties @@ -42,8 +42,8 @@ Node2->Node1 - - + + @@ -51,8 +51,8 @@ Node3 - -JKQTGraphsSpecificStyleProperties + +JKQTGraphsSpecificStyleProperties @@ -60,8 +60,8 @@ Node3->Node2 - - + + @@ -69,8 +69,8 @@ Node4 - -JKQTPColorDerivationMode + +JKQTPColorDerivationMode @@ -78,15 +78,34 @@ Node4->Node3 - - + + - errorColorDerivationMode -errorFillColorDerivationMode -fillColorDerivationMode -graphColorDerivationMode -symbolFillColorDerivationMode + errorColorDerivationMode +errorFillColorDerivationMode +fillColorDerivationMode +graphColorDerivationMode +symbolFillColorDerivationMode + + + +Node5 + + +JKQTFillStyleSummmary + + + + + +Node5->Node2 + + + + + + defaultFillStyle diff --git a/class_j_k_q_t_annotations_specific_style_properties__coll__graph_org.svg b/class_j_k_q_t_annotations_specific_style_properties__coll__graph_org.svg index 226e3896e42..6e1c40bf6ac 100644 --- a/class_j_k_q_t_annotations_specific_style_properties__coll__graph_org.svg +++ b/class_j_k_q_t_annotations_specific_style_properties__coll__graph_org.svg @@ -4,17 +4,17 @@ - - + + JKQTAnnotationsSpecificStyleProperties Node1 - -JKQTAnnotationsSpecificStyle -Properties + +JKQTAnnotationsSpecificStyle +Properties @@ -22,9 +22,9 @@ Node2 - -JKQTGeometricSpecificStyle -Properties + +JKQTGeometricSpecificStyle +Properties @@ -32,8 +32,8 @@ Node2->Node1 - - + + @@ -41,8 +41,8 @@ Node3 - -JKQTGraphsSpecificStyleProperties + +JKQTGraphsSpecificStyleProperties @@ -50,8 +50,8 @@ Node3->Node2 - - + + @@ -59,8 +59,8 @@ Node4 - -JKQTPColorDerivationMode + +JKQTPColorDerivationMode @@ -68,15 +68,34 @@ Node4->Node3 - - + + - errorColorDerivationMode -errorFillColorDerivationMode -fillColorDerivationMode -graphColorDerivationMode -symbolFillColorDerivationMode + errorColorDerivationMode +errorFillColorDerivationMode +fillColorDerivationMode +graphColorDerivationMode +symbolFillColorDerivationMode + + + +Node5 + + +JKQTFillStyleSummmary + + + + + +Node5->Node2 + + + + + + defaultFillStyle diff --git a/class_j_k_q_t_barchart_specific_style_properties-members.html b/class_j_k_q_t_barchart_specific_style_properties-members.html index e5cf15d1353..87ffb65c819 100644 --- a/class_j_k_q_t_barchart_specific_style_properties-members.html +++ b/class_j_k_q_t_barchart_specific_style_properties-members.html @@ -164,7 +164,7 @@ diff --git a/class_j_k_q_t_barchart_specific_style_properties.html b/class_j_k_q_t_barchart_specific_style_properties.html index acf4eb9a13f..f3dadd4bd40 100644 --- a/class_j_k_q_t_barchart_specific_style_properties.html +++ b/class_j_k_q_t_barchart_specific_style_properties.html @@ -537,7 +537,7 @@

diff --git a/class_j_k_q_t_base_plotter-members.html b/class_j_k_q_t_base_plotter-members.html index 0ebf4a0c98b..4feecb97e03 100644 --- a/class_j_k_q_t_base_plotter-members.html +++ b/class_j_k_q_t_base_plotter-members.html @@ -616,7 +616,7 @@ diff --git a/class_j_k_q_t_base_plotter.html b/class_j_k_q_t_base_plotter.html index be6897a5f36..58b3cd50c91 100644 --- a/class_j_k_q_t_base_plotter.html +++ b/class_j_k_q_t_base_plotter.html @@ -1711,11 +1711,11 @@

First note that this functionality is only available and activated if both axes are linear!

You can set two different aspect ratios:

@@ -12588,10 +12588,10 @@

- - - - + + + +

@@ -224,9 +224,9 @@

QColor defaultColor
 graph color used
 
Qt::BrushStyle defaultFillStyle
 graph fill style used
 
JKQTFillStyleSummmary defaultFillStyle
 graph fill style used
 
Qt::PenStyle defaultLineStyle
 graph line style used
 
zoomXif set true (default) zooms the x axis
zoomYif set true (default) zooms the y axis
includeX0if this is true zoomToFit() will ensure that $ x=0 $ is visible in the plot (only for non-logx plots, default: false)
includeY0if this is true zoomToFit() will ensure that $ y=0 $ is visible in the plot (only for non-logy plots, default: false)
scaleXthe plot will have a width of $ \mbox{Xscale}\cdot\Delta x $ where $ \Delta x $ is the actual x-axis data range For logx plots we actually use this on the logarithmized data! (default: 1.05)
scaleYthe plot will have a height of $ \mbox{Yscale}\cdot\Delta < $ where $ \Delta < $ is the actual <-axis data range For log< plots we actually use this on the logarithmized data! (default: 1.05)
includeX0if this is true zoomToFit() will ensure that $ x=0 $ is visible in the plot (only for non-logx plots, default: false)
includeY0if this is true zoomToFit() will ensure that $ y=0 $ is visible in the plot (only for non-logy plots, default: false)
scaleXthe plot will have a width of $ \mbox{Xscale}\cdot\Delta x $ where $ \Delta x $ is the actual x-axis data range For logx plots we actually use this on the logarithmized data! (default: 1.05)
scaleYthe plot will have a height of $ \mbox{Yscale}\cdot\Delta < $ where $ \Delta < $ is the actual <-axis data range For log< plots we actually use this on the logarithmized data! (default: 1.05)
@@ -13002,7 +13002,7 @@

-\[ \mbox{aspectRatio}=\frac{\mbox{plotWidth}}{\mbox{plotHeight}} \] +\[ \mbox{aspectRatio}=\frac{\mbox{plotWidth}}{\mbox{plotHeight}} \]

See also
maintainAspectRatio
@@ -13030,7 +13030,7 @@

e.g. when calling setXY() ), the given axis ranges are modified, so

-\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \] +\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]

Note
An axis aspect ratio is only well defined for linear axes (if both axes are linear). If both axes a logarithmic, the axis ration is defined for log(axismax)-log(axismin). For other combinations of axes, this function is deactivated
See also
maintainAxisAspectRatio
@@ -14112,7 +14112,7 @@

e.g. when calling setXY() ), the given axis ranges are modified, so

-\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \] +\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]

Note
An axis aspect ratio is only well defined for linear axes (if both axes are linear). If both axes a logarithmic, the axis ration is defined for log(axismax)-log(axismin). For other combinations of axes, this function is deactivated
See also
axisAspectRatio
@@ -14924,7 +14924,7 @@

    - +
diff --git a/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen-members.html b/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen-members.html index dacf396c9ae..811787c285c 100644 --- a/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen-members.html +++ b/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen-members.html @@ -176,7 +176,7 @@ diff --git a/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen.html b/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen.html index 7f2beebd1de..f0aaa71485b 100644 --- a/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen.html +++ b/class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen.html @@ -1057,7 +1057,7 @@

diff --git a/class_j_k_q_t_base_plotter_1_1_plot_margins-members.html b/class_j_k_q_t_base_plotter_1_1_plot_margins-members.html index c60b1afeb1c..5367e4fc0b9 100644 --- a/class_j_k_q_t_base_plotter_1_1_plot_margins-members.html +++ b/class_j_k_q_t_base_plotter_1_1_plot_margins-members.html @@ -142,7 +142,7 @@ diff --git a/class_j_k_q_t_base_plotter_1_1_plot_margins.html b/class_j_k_q_t_base_plotter_1_1_plot_margins.html index db92b797e2d..2ba84b5eaa3 100644 --- a/class_j_k_q_t_base_plotter_1_1_plot_margins.html +++ b/class_j_k_q_t_base_plotter_1_1_plot_margins.html @@ -395,7 +395,7 @@

diff --git a/class_j_k_q_t_base_plotter__coll__graph.map b/class_j_k_q_t_base_plotter__coll__graph.map index 38763d8b971..e78af2255ad 100644 --- a/class_j_k_q_t_base_plotter__coll__graph.map +++ b/class_j_k_q_t_base_plotter__coll__graph.map @@ -1,102 +1,104 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/class_j_k_q_t_base_plotter__coll__graph.md5 b/class_j_k_q_t_base_plotter__coll__graph.md5 index 11c00fa72da..0fec8ba0e08 100644 --- a/class_j_k_q_t_base_plotter__coll__graph.md5 +++ b/class_j_k_q_t_base_plotter__coll__graph.md5 @@ -1 +1 @@ -d1564402a135218f13bae532079a5937 \ No newline at end of file +7cf1bbcb113443b4639aa58cf776a76c \ No newline at end of file diff --git a/class_j_k_q_t_base_plotter__coll__graph.svg b/class_j_k_q_t_base_plotter__coll__graph.svg index 8074df3dfe7..6fc15bcaf41 100644 --- a/class_j_k_q_t_base_plotter__coll__graph.svg +++ b/class_j_k_q_t_base_plotter__coll__graph.svg @@ -4,7 +4,7 @@ - + - + JKQTGeometricSpecificStyleProperties Node1 - -JKQTGeometricSpecificStyle -Properties + +JKQTGeometricSpecificStyle +Properties @@ -32,8 +32,8 @@ Node2 - -JKQTGraphsSpecificStyleProperties + +JKQTGraphsSpecificStyleProperties @@ -41,8 +41,8 @@ Node2->Node1 - - + + @@ -50,8 +50,8 @@ Node3 - -JKQTPColorDerivationMode + +JKQTPColorDerivationMode @@ -59,15 +59,34 @@ Node3->Node2 - - + + - errorColorDerivationMode -errorFillColorDerivationMode -fillColorDerivationMode -graphColorDerivationMode -symbolFillColorDerivationMode + errorColorDerivationMode +errorFillColorDerivationMode +fillColorDerivationMode +graphColorDerivationMode +symbolFillColorDerivationMode + + + +Node4 + + +JKQTFillStyleSummmary + + + + + +Node4->Node1 + + + + + + defaultFillStyle diff --git a/class_j_k_q_t_geometric_specific_style_properties__coll__graph_org.svg b/class_j_k_q_t_geometric_specific_style_properties__coll__graph_org.svg index 59dae6e45b1..d4d8e06e35e 100644 --- a/class_j_k_q_t_geometric_specific_style_properties__coll__graph_org.svg +++ b/class_j_k_q_t_geometric_specific_style_properties__coll__graph_org.svg @@ -4,17 +4,17 @@ - - + + JKQTGeometricSpecificStyleProperties Node1 - -JKQTGeometricSpecificStyle -Properties + +JKQTGeometricSpecificStyle +Properties @@ -22,8 +22,8 @@ Node2 - -JKQTGraphsSpecificStyleProperties + +JKQTGraphsSpecificStyleProperties @@ -31,8 +31,8 @@ Node2->Node1 - - + + @@ -40,8 +40,8 @@ Node3 - -JKQTPColorDerivationMode + +JKQTPColorDerivationMode @@ -49,15 +49,34 @@ Node3->Node2 - - + + - errorColorDerivationMode -errorFillColorDerivationMode -fillColorDerivationMode -graphColorDerivationMode -symbolFillColorDerivationMode + errorColorDerivationMode +errorFillColorDerivationMode +fillColorDerivationMode +graphColorDerivationMode +symbolFillColorDerivationMode + + + +Node4 + + +JKQTFillStyleSummmary + + + + + +Node4->Node1 + + + + + + defaultFillStyle diff --git a/class_j_k_q_t_graphs_base_style-members.html b/class_j_k_q_t_graphs_base_style-members.html index 54f60414d15..54fb0c4a962 100644 --- a/class_j_k_q_t_graphs_base_style-members.html +++ b/class_j_k_q_t_graphs_base_style-members.html @@ -154,7 +154,7 @@ diff --git a/class_j_k_q_t_graphs_base_style.html b/class_j_k_q_t_graphs_base_style.html index f060434ea1e..f771c39abf7 100644 --- a/class_j_k_q_t_graphs_base_style.html +++ b/class_j_k_q_t_graphs_base_style.html @@ -137,7 +137,7 @@
Collaboration diagram for JKQTGraphsBaseStyle:
-
+
[legend]

@@ -678,7 +678,7 @@

diff --git a/class_j_k_q_t_graphs_base_style__coll__graph.map b/class_j_k_q_t_graphs_base_style__coll__graph.map index 2be9e0dea69..5e856d66531 100644 --- a/class_j_k_q_t_graphs_base_style__coll__graph.map +++ b/class_j_k_q_t_graphs_base_style__coll__graph.map @@ -1,19 +1,21 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/class_j_k_q_t_graphs_base_style__coll__graph.md5 b/class_j_k_q_t_graphs_base_style__coll__graph.md5 index 1ccea5e512b..b74f22d6143 100644 --- a/class_j_k_q_t_graphs_base_style__coll__graph.md5 +++ b/class_j_k_q_t_graphs_base_style__coll__graph.md5 @@ -1 +1 @@ -ed92371f8001f127ee3e078d4732e468 \ No newline at end of file +b8bcf647318bd7fcafc5831d07b544cf \ No newline at end of file diff --git a/class_j_k_q_t_graphs_base_style__coll__graph.svg b/class_j_k_q_t_graphs_base_style__coll__graph.svg index 741825f5a84..fa7475fad85 100644 --- a/class_j_k_q_t_graphs_base_style__coll__graph.svg +++ b/class_j_k_q_t_graphs_base_style__coll__graph.svg @@ -4,7 +4,7 @@ - +