Deploying to gh-pages from @ 6a96d36538 🚀

This commit is contained in:
jkriege2 2024-10-17 10:45:39 +00:00
parent 97ef793e9d
commit 32dc16afb0
1233 changed files with 1634 additions and 1631 deletions

View File

@ -192,7 +192,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_c_make_fetch_content_example.
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -186,7 +186,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_c_make_link_example.html','')
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -292,7 +292,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_fast_plotter_test.html','');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -185,7 +185,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_math_text_render_cmd_line_too
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -173,7 +173,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_math_text_simple_example.html
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -128,7 +128,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_math_text_test_app.html','');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -176,7 +176,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_p_parametrized_vector_field_g
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -222,7 +222,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_advanced_line_and_fil
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -237,7 +237,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_barcharts.html','');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -212,7 +212,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_barcharts_custom_draw
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -186,7 +186,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_barcharts_error_bars.
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -166,7 +166,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_barcharts_functor_fil
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -170,7 +170,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_barcharts_two_color_f
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -373,7 +373,7 @@ Iterator Interface</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -202,7 +202,7 @@ Special Properties of the JKQTPDatastore-Iterators</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -396,7 +396,7 @@ Screenshot of the full Program</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -117,16 +117,16 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_basic_j_k_q_t_p_datas
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#autotoc_md53">Generating different sets of random numbers</a></li>
<li class="level1"><a href="#autotoc_md54">Basic Statistics</a></li>
<li class="level1"><a href="#autotoc_md55">Boxplots</a><ul><li class="level2"><a href="#autotoc_md56">Standard Boxplots</a></li>
<li class="level2"><a href="#autotoc_md57">Boxplots with Outliers</a></li>
<ul><li class="level1"><a href="#autotoc_md48">Generating different sets of random numbers</a></li>
<li class="level1"><a href="#autotoc_md49">Basic Statistics</a></li>
<li class="level1"><a href="#autotoc_md50">Boxplots</a><ul><li class="level2"><a href="#autotoc_md51">Standard Boxplots</a></li>
<li class="level2"><a href="#autotoc_md52">Boxplots with Outliers</a></li>
</ul>
</li>
<li class="level1"><a href="#autotoc_md58">Histograms</a></li>
<li class="level1"><a href="#autotoc_md59">Kernel Density Estimates (KDE)</a></li>
<li class="level1"><a href="#autotoc_md60">Cummulative Histograms and KDEs</a></li>
<li class="level1"><a href="#autotoc_md61">Screenshot of the full Program</a></li>
<li class="level1"><a href="#autotoc_md53">Histograms</a></li>
<li class="level1"><a href="#autotoc_md54">Kernel Density Estimates (KDE)</a></li>
<li class="level1"><a href="#autotoc_md55">Cummulative Histograms and KDEs</a></li>
<li class="level1"><a href="#autotoc_md56">Screenshot of the full Program</a></li>
</ul>
</div>
<div class="textblock"><p>This tutorial project (see <code>./examples/datastore_statistics/</code>) explains several advanced functions of <a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a> in combination with the [<a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a>] conatined in <a class="el" href="class_j_k_q_t_plotter.html" title="plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)">JKQTPlotter</a>.</p>
@ -139,7 +139,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_basic_j_k_q_t_p_datas
<li><a class="el" href="_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics2_d.html">Advanced 2-Dimensional Statistics with JKQTPDatastore</a></li>
</ul>
<p>The source code of the main application can be found in <a href="https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics/datastore_statistics.cpp"><code>datastore_statistics.cpp</code></a>. This tutorial cites only parts of this code to demonstrate different ways of working with data for the graphs.</p>
<h1><a class="anchor" id="autotoc_md53"></a>
<h1><a class="anchor" id="autotoc_md48"></a>
Generating different sets of random numbers</h1>
<p>The code segments below will fill four instances of <a class="el" href="class_j_k_q_t_plotter.html" title="plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)">JKQTPlotter</a> with different statistical plots. All these plots are based on three sets of random numbers generated as shown here: </p><div class="fragment"><div class="line"><span class="keywordtype">size_t</span> randomdatacol1=datastore1-&gt;addColumn(<span class="stringliteral">&quot;random data 1&quot;</span>);</div>
<div class="line"><span class="keywordtype">size_t</span> randomdatacol2=datastore1-&gt;addColumn(<span class="stringliteral">&quot;random data 2&quot;</span>);</div>
@ -159,7 +159,7 @@ Generating different sets of random numbers</h1>
<div class="line"> <span class="keywordflow">else</span> datastore1-&gt;appendToColumn(randomdatacol3, v);</div>
<div class="line">}</div>
</div><!-- fragment --><p>The column <code>randomdatacol1</code> will contain 150 random numbers. Each one is drawn either from a normal dirstribution N(0,1) (<code>d1</code>) or N(6,1.2) (<code>d2</code>). the decision, which of the two to use is based on the result of a third random distribution ddecide, which only returns 0 or 1. The two columns <code>randomdatacol2</code> and <code>randomdatacol3</code> only collect the random numbers drawn from <code>d1</code> or <code>d2</code> respectively. The three columns are generated empyt by calling <code><a class="el" href="class_j_k_q_t_p_datastore.html#ae057eda96c7b754cd42f4380b429a589" title="add a new column to the datastore and return its ID">JKQTPDatastore::addColumn()</a></code> with only a name. Then the actual values are added by calling <code><a class="el" href="class_j_k_q_t_p_datastore.html#a3a992ac63957ce0c521e48944f704d91" title="adds a value value to the column column. This changes the column length (number of rows).">JKQTPDatastore::appendToColumn()</a></code>.</p>
<h1><a class="anchor" id="autotoc_md54"></a>
<h1><a class="anchor" id="autotoc_md49"></a>
Basic Statistics</h1>
<p>The three sets of random numbers from above can be visualized e.g. by a <code><a class="el" href="class_j_k_q_t_p_peak_stream_graph.html" title="interprets data as a stream of x- or y-positions (depending in yPeaks ) ans plots a line on the heig...">JKQTPPeakStreamGraph</a></code> graph with code as follows: </p><div class="fragment"><div class="line"><a class="code hl_class" href="class_j_k_q_t_p_peak_stream_graph.html">JKQTPPeakStreamGraph</a>* gData1;</div>
<div class="line">plot1box-&gt;addGraph(gData1=<span class="keyword">new</span> <a class="code hl_class" href="class_j_k_q_t_p_peak_stream_graph.html">JKQTPPeakStreamGraph</a>(plot1box));</div>
@ -199,9 +199,9 @@ Basic Statistics</h1>
<li>5-Number Summary (e.g. for boxplots): <code><a class="el" href="group__jkqtptools__math__statistics__basic.html#ga3a94379010a5de3e9701122f88bfb6f4" title="calculates the Five-Number Statistical Summary (minimum, median, maximum and two user-defined quantil...">jkqtpstat5NumberStatistics()</a></code>, <code><a class="el" href="group__jkqtptools__math__statistics__basic.html#gaac8934aa1adf6cc3e90a74002dcd5576" title="calculates the Five-Number Statistical Summary (minimum, median, maximum and two user-defined quantil...">jkqtpstat5NumberStatisticsAndOutliers()</a></code>, <code><a class="el" href="group__jkqtptools__math__statistics__basic.html#ga8097151787e2f08b59d61a89e9ca3ba6" title="calculates the Five-Number Statistical Summary (minimum, median, maximum and two user-defined quantil...">jkqtpstat5NumberStatisticsOfSortedVector()</a></code>, <code><a class="el" href="group__jkqtptools__math__statistics__basic.html#ga71146e45f6cca4eefb5748fcd0e72751" title="calculates the Five-Number Statistical Summary (minimum, median, maximum and two user-defined quantil...">jkqtpstat5NumberStatisticsAndOutliersOfSortedVector()</a></code></li>
</ul>
<p>All these functions use all values in the given range and convert each value to a <code>double</code>, using <code><a class="el" href="group__jkqtptools__math__basic.html#ga966c1a713f60bd026db4f35f7007eb7e" title="converts a boolean to a double, is used to convert boolean to double by JKQTPDatastore">jkqtp_todouble()</a></code>. The return values is always a dohble. Therefore you can use these functions to calculate statistics of ranges of any type that can be converted to <code>double</code>. Values that do not result in a valid <code>double</code>are not used in calculating the statistics. Therefore you can exclude values by setting them <code>JKQTP_DOUBLE_NAN</code> (i.e. "not a number").</p>
<h1><a class="anchor" id="autotoc_md55"></a>
<h1><a class="anchor" id="autotoc_md50"></a>
Boxplots</h1>
<h2><a class="anchor" id="autotoc_md56"></a>
<h2><a class="anchor" id="autotoc_md51"></a>
Standard Boxplots</h2>
<p>As mentioned above and shown in several other examples, <a class="el" href="class_j_k_q_t_plotter.html" title="plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)">JKQTPlotter</a> supports <a href="https://en.wikipedia.org/wiki/Box_plot">Boxplots</a> with the classes <code><a class="el" href="class_j_k_q_t_p_boxplot_horizontal_element.html" title="This implements a horizontal (notched) boxplot where the data is directly given to the object and not...">JKQTPBoxplotHorizontalElement</a></code>, <code><a class="el" href="class_j_k_q_t_p_boxplot_vertical_element.html" title="This implements a single vertical (notched) boxplot as a &quot;geometric element&quot;, where the data is direc...">JKQTPBoxplotVerticalElement</a></code>, as well as <code>JKQTPBoxplotHorizontal</code> and <code>JKQTPBoxplotVertical</code>. You can then use the 5-Number Summray functions from the <a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a> to calculate the data for such a boxplot (e.g. <code><a class="el" href="group__jkqtptools__math__statistics__basic.html#ga3a94379010a5de3e9701122f88bfb6f4" title="calculates the Five-Number Statistical Summary (minimum, median, maximum and two user-defined quantil...">jkqtpstat5NumberStatistics()</a></code>) and set it up by hand. Code would look roughly like this: </p><div class="fragment"><div class="line"><a class="code hl_struct" href="struct_j_k_q_t_p_stat5_number_statistics.html">JKQTPStat5NumberStatistics</a> stat=<a class="code hl_function" href="group__jkqtptools__math__statistics__basic.html#ga3a94379010a5de3e9701122f88bfb6f4">jkqtpstat5NumberStatistics</a>(data.begin(), data.end(), 0.25, .5);</div>
<div class="line"><a class="code hl_class" href="class_j_k_q_t_p_boxplot_vertical_element.html">JKQTPBoxplotVerticalElement</a>* res=<span class="keyword">new</span> <a class="code hl_class" href="class_j_k_q_t_p_boxplot_vertical_element.html">JKQTPBoxplotVerticalElement</a>(plotter);</div>
@ -251,7 +251,7 @@ Standard Boxplots</h2>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_gadc49e9815cacace42d56389d63f0228b"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#gadc49e9815cacace42d56389d63f0228b">jkqtpstatAddHBoxplot</a></div><div class="ttdeci">JKQTPBoxplotHorizontalElement * jkqtpstatAddHBoxplot(JKQTBasePlotter *plotter, InputIt first, InputIt last, double boxposY, double quantile1Spec=0.25, double quantile2Spec=0.75, double minimumQuantile=0, double maximumQuantile=1.0, JKQTPStat5NumberStatistics *statOutput=nullptr)</div><div class="ttdoc">add a JKQTPBoxplotHorizontalElement to the given plotter, where the boxplot values are calculated fro...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:67</div></div>
</div><!-- fragment --><p>Here <code>-0.25</code>indicates the location (on the y-axis) of the boxplot. and the plot is calculated for the data in the <code><a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a></code> column <code>randomdatacol2</code>.</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_boxplots_simple.png" alt="datastore_statistics_boxplots_simple" class="inline"/></p>
<h2><a class="anchor" id="autotoc_md57"></a>
<h2><a class="anchor" id="autotoc_md52"></a>
Boxplots with Outliers</h2>
<p>Usually the boxplot draws its whiskers at the minimum and maximum value of the dataset. But if your data contains a lot of outliers, it may make sense to draw them e.g. at the 3% and 97% quantiles and the draw the outliers as additional data points. This can also be done with <code><a class="el" href="group__jkqtptools__math__statistics__basic.html#ga3a94379010a5de3e9701122f88bfb6f4" title="calculates the Five-Number Statistical Summary (minimum, median, maximum and two user-defined quantil...">jkqtpstat5NumberStatistics()</a></code>, as you can specify the minimum and maximum quantile (default is 0 and 1, i.e. the true minimum and maximum) and the resulting object contains a vector with the outlier values. Then you could add them to the <a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a> and add a scatter plot that displays them. Also this task is sped up by an "adaptor". Simply call</p>
<div class="fragment"><div class="line">std::pair&lt;JKQTPBoxplotHorizontalElement*,JKQTPSingleColumnSymbolsGraph*&gt; gBox1;</div>
@ -262,7 +262,7 @@ Boxplots with Outliers</h2>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_gab0ff0614e1796afe34c3cae0dc9ba8a3"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#gab0ff0614e1796afe34c3cae0dc9ba8a3">jkqtpstatAddHBoxplotAndOutliers</a></div><div class="ttdeci">std::pair&lt; JKQTPBoxplotHorizontalElement *, JKQTPSingleColumnSymbolsGraph * &gt; jkqtpstatAddHBoxplotAndOutliers(JKQTBasePlotter *plotter, InputIt first, InputIt last, double boxposY, double quantile1Spec=0.25, double quantile2Spec=0.75, double minimumQuantile=0.03, double maximumQuantile=0.97, const QString &amp;outliercolumnBaseName=QString(&quot;boxplot&quot;), JKQTPStat5NumberStatistics *statOutput=nullptr)</div><div class="ttdoc">add a JKQTPBoxplotHorizontalElement and a JKQTPSingleColumnSymbolsGraph for outliers to the given plo...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:164</div></div>
</div><!-- fragment --><p>As you can see this restuns the <code><a class="el" href="class_j_k_q_t_p_boxplot_horizontal_element.html" title="This implements a horizontal (notched) boxplot where the data is directly given to the object and not...">JKQTPBoxplotHorizontalElement</a></code> and in addition a <code><a class="el" href="class_j_k_q_t_p_single_column_symbols_graph.html" title="plots a 1-column set of data-values with symbols onto a JKQtPlotter/JKQtBasePlotter....">JKQTPSingleColumnSymbolsGraph</a></code> for the display of the outliers. The result looks like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_boxplots_outliers.png" alt="datastore_statistics_boxplots_outliers" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md58"></a>
<h1><a class="anchor" id="autotoc_md53"></a>
Histograms</h1>
<p>Calculating 1D-Histograms is supported by several functions from the <a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a>, e.g. <code><a class="el" href="group__jkqtptools__math__statistics__1dhist.html#gaa83dbe625d4507f55629eaaf96a09cf8" title="calculate an autoranged 1-dimensional histogram from the given data range first .....">jkqtpstatHistogram1DAutoranged()</a></code>. You can use the result to fill new columns in a <code><a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a></code>, which can then be used to draw the histogram (here wit 15 bins, spanning the full data range):</p>
<div class="fragment"><div class="line"><span class="keywordtype">size_t</span> histcolX=plotter-&gt;getDatastore()-&gt;addColumn(histogramcolumnBaseName+<span class="stringliteral">&quot;, bins&quot;</span>);</div>
@ -283,7 +283,7 @@ Histograms</h1>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_ga8ff37e2bd7bd79311cca2c5cc3b65345"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#ga8ff37e2bd7bd79311cca2c5cc3b65345">jkqtpstatAddHHistogram1DAutoranged</a></div><div class="ttdeci">JKQTPBarVerticalGraph * jkqtpstatAddHHistogram1DAutoranged(JKQTBasePlotter *plotter, InputIt first, InputIt last, int bins=11, bool normalized=true, bool cummulative=false, const QString &amp;histogramcolumnBaseName=QString(&quot;histogram&quot;))</div><div class="ttdoc">calculate an autoranged histogram and add a JKQTPBarVerticalGraph to the given plotter,...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:828</div></div>
</div><!-- fragment --><p>The resulting plot looks like this (the distributions used to generate the random data are also shown as line plots!):</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_hist.png" alt="datastore_statistics_hist" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md59"></a>
<h1><a class="anchor" id="autotoc_md54"></a>
Kernel Density Estimates (KDE)</h1>
<p>Especially when only few samples from a distribution are available, histograms are not good at representing the underlying data distribution. In such cases, <a href="https://en.wikipedia.org/wiki/Kernel_density_estimation">Kernel Density Estimates (KDE)</a> can help, which are basically a smoothed variant of a histogram. The <a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a> supports calculating them via e.g. <code><a class="el" href="group__jkqtptools__math__statistics__1dkde.html#gaea1ca0066c61947e8a8a7d8deaa36d3e" title="calculate an autoranged 1-dimensional Kernel Density Estimation (KDE) from the given data range first...">jkqtpstatKDE1D()</a></code>:</p>
<div class="fragment"><div class="line"><span class="keywordtype">size_t</span> kdecolX=plotter-&gt;getDatastore()-&gt;addColumn(KDEcolumnBaseName+<span class="stringliteral">&quot;, bins&quot;</span>);</div>
@ -322,7 +322,7 @@ Kernel Density Estimates (KDE)</h1>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_ga6c4b29bcf7b95cd6ff8564df48551cdd"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#ga6c4b29bcf7b95cd6ff8564df48551cdd">jkqtpstatAddHKDE1D</a></div><div class="ttdeci">JKQTPXYLineGraph * jkqtpstatAddHKDE1D(JKQTBasePlotter *plotter, InputIt first, InputIt last, BinsInputIt binsFirst, BinsInputIt binsLast, const std::function&lt; double(double)&gt; &amp;kernel=std::function&lt; double(double)&gt;(&amp;jkqtpstatKernel1DGaussian), double bandwidth=1.0, bool cummulative=false, const QString &amp;KDEcolumnBaseName=QString(&quot;KDE&quot;))</div><div class="ttdoc">calculate an autoranged KDE and add a JKQTPXYLineGraph to the given plotter, where the KDE is calcula...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:1365</div></div>
</div><!-- fragment --><p>Plots that result from such calls look like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_kde.png" alt="datastore_statistics_kde" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md60"></a>
<h1><a class="anchor" id="autotoc_md55"></a>
Cummulative Histograms and KDEs</h1>
<p>Both histograms and KDEs support a parameter <code>bool cummulative</code>, which allows to accumulate the data after calculation and drawing cummulative histograms/KDEs:</p>
<div class="fragment"><div class="line"><a class="code hl_class" href="class_j_k_q_t_p_bar_vertical_graph.html">JKQTPBarVerticalGraph</a>* histcum2=<a class="code hl_function" href="group__jkqtptools__math__statistics__adaptors.html#ga8ff37e2bd7bd79311cca2c5cc3b65345">jkqtpstatAddHHistogram1DAutoranged</a>(plot1cum-&gt;getPlotter(), datastore1-&gt;begin(randomdatacol2), datastore1-&gt;end(randomdatacol2),</div>
@ -331,7 +331,7 @@ Cummulative Histograms and KDEs</h1>
<div class="line"><span class="comment">// normalized, cummulative</span></div>
<div class="line"> <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
</div><!-- fragment --><p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_cumhistkde.png" alt="datastore_statistics_cumhistkde" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md61"></a>
<h1><a class="anchor" id="autotoc_md56"></a>
Screenshot of the full Program</h1>
<p>The output of the full test program <a href="https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics/datastore_statistics.cpp"><code>datastore_statistics.cpp</code></a> looks like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics.png" alt="datastore_statistics" class="inline"/> </p>
@ -343,7 +343,7 @@ Screenshot of the full Program</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -117,11 +117,11 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_basic_j_k_q_t_p_datas
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#autotoc_md48">Generating different sets of random numbers</a></li>
<li class="level1"><a href="#autotoc_md49">Marginal Statistics</a></li>
<li class="level1"><a href="#autotoc_md50">2D Histogram</a></li>
<li class="level1"><a href="#autotoc_md51">Kernel Density Estimates (KDE)</a></li>
<li class="level1"><a href="#autotoc_md52">Screenshot of the full Program</a></li>
<ul><li class="level1"><a href="#autotoc_md59">Generating different sets of random numbers</a></li>
<li class="level1"><a href="#autotoc_md60">Marginal Statistics</a></li>
<li class="level1"><a href="#autotoc_md61">2D Histogram</a></li>
<li class="level1"><a href="#autotoc_md62">Kernel Density Estimates (KDE)</a></li>
<li class="level1"><a href="#autotoc_md63">Screenshot of the full Program</a></li>
</ul>
</div>
<div class="textblock"><p>This tutorial project (see <code>./examples/datastore_statistics_2d/</code>) explains several advanced functions of <a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a> in combination with the [<a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a>] conatined in <a class="el" href="class_j_k_q_t_plotter.html" title="plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)">JKQTPlotter</a>.</p>
@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_basic_j_k_q_t_p_datas
<li><a class="el" href="_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics2_d.html">Advanced 2-Dimensional Statistics with JKQTPDatastore</a></li>
</ul>
<p>The source code of the main application can be found in <a href="https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics_2d/datastore_statistics_2d.cpp"><code>datastore_statistics_2d.cpp</code></a>. This tutorial cites only parts of this code to demonstrate different ways of working with data for the graphs.</p>
<h1><a class="anchor" id="autotoc_md48"></a>
<h1><a class="anchor" id="autotoc_md59"></a>
Generating different sets of random numbers</h1>
<p>The code segments below will fill different instances of <a class="el" href="class_j_k_q_t_plotter.html" title="plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)">JKQTPlotter</a> 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: </p><div class="fragment"><div class="line"><span class="keywordtype">size_t</span> randomdatacolx_small=datastore1-&gt;addColumn(<span class="stringliteral">&quot;random data, x&quot;</span>);</div>
<div class="line"><span class="keywordtype">size_t</span> randomdatacoly_small=datastore1-&gt;addColumn(<span class="stringliteral">&quot;random data, y&quot;</span>);</div>
@ -203,7 +203,7 @@ Generating different sets of random numbers</h1>
<div class="ttc" id="aclass_j_k_q_t_p_geo_ellipse_html"><div class="ttname"><a href="class_j_k_q_t_p_geo_ellipse.html">JKQTPGeoEllipse</a></div><div class="ttdoc">This JKQTPGeometricPlotElement is used to draw an ellipse.</div><div class="ttdef"><b>Definition</b> jkqtpgeoshapes.h:300</div></div>
</div><!-- fragment --><p>The resulting plot looks like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_scatteronly.png" alt="datastore_statistics_2d_scatteronly" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md49"></a>
<h1><a class="anchor" id="autotoc_md60"></a>
Marginal Statistics</h1>
<p>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 <code><a class="el" href="group__jkqtptools__math__statistics__adaptors.html#ga8ff37e2bd7bd79311cca2c5cc3b65345" title="calculate an autoranged histogram and add a JKQTPBarVerticalGraph to the given plotter,...">jkqtpstatAddHHistogram1DAutoranged()</a></code> and <code><a class="el" href="group__jkqtptools__math__statistics__adaptors.html#ga4797755e8ed88b52e524f38e49fd396e" title="calculate an autoranged histogram and add a JKQTPBarHorizontalGraph to the given plotter,...">jkqtpstatAddVHistogram1DAutoranged()</a></code> that were introduced in <a class="el" href="_j_k_q_t_plotter_basic_j_k_q_t_p_datastore_statistics.html">Advanced 1-Dimensional Statistics with JKQTPDatastore</a> and are explained in detail there:</p>
<div class="fragment"><div class="line"><a class="code hl_function" href="group__jkqtptools__math__statistics__adaptors.html#ga8ff37e2bd7bd79311cca2c5cc3b65345">jkqtpstatAddHHistogram1DAutoranged</a>(plothistBottom-&gt;getPlotter(), datastore1-&gt;begin(randomdatacolx), datastore1-&gt;end(randomdatacolx), 1.0, <span class="keyword">true</span>);</div>
@ -270,7 +270,7 @@ Marginal Statistics</h1>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_ga4d6431fd319ea8517ee85b99fb6437cb"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#ga4d6431fd319ea8517ee85b99fb6437cb">jkqtpstatAddVKDE1DAutoranged</a></div><div class="ttdeci">JKQTPXYLineGraph * jkqtpstatAddVKDE1DAutoranged(JKQTBasePlotter *plotter, InputIt first, InputIt last, int Nout=100, const std::function&lt; double(double)&gt; &amp;kernel=std::function&lt; double(double)&gt;(&amp;jkqtpstatKernel1DGaussian), double bandwidth=1.0, bool cummulative=false, const QString &amp;KDEcolumnBaseName=QString(&quot;KDE&quot;))</div><div class="ttdoc">calculate an autoranged vertical KDE and add a JKQTPXYLineGraph to the given plotter,...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:1457</div></div>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_gaab1d97b4953dbe7ed0f78d2b29d8f341"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#gaab1d97b4953dbe7ed0f78d2b29d8f341">jkqtpstatAddHKDE1DAutoranged</a></div><div class="ttdeci">JKQTPXYLineGraph * jkqtpstatAddHKDE1DAutoranged(JKQTBasePlotter *plotter, InputIt first, InputIt last, int Nout=100, const std::function&lt; double(double)&gt; &amp;kernel=std::function&lt; double(double)&gt;(&amp;jkqtpstatKernel1DGaussian), double bandwidth=1.0, bool cummulative=false, const QString &amp;KDEcolumnBaseName=QString(&quot;KDE&quot;))</div><div class="ttdoc">calculate an autoranged KDE and add a JKQTPXYLineGraph to the given plotter, where the KDE is calcula...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:1279</div></div>
</div><!-- fragment --><p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_marginkde.png" alt="datastore_statistics_2d_marginkde" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md50"></a>
<h1><a class="anchor" id="autotoc_md61"></a>
2D Histogram</h1>
<p>Calculating 2D-Histograms is implemented in <code><a class="el" href="group__jkqtptools__math__statistics__2dhist.html#gad8ab0d1e867375485e2c64743e12ab44" title="calculate a 2-dimensional histogram from the given data range firstX / firstY ... lastY / lastY">jkqtpstatHistogram2D()</a></code> from the <a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a>. This functions calculates a histogram on a given grid with the first bin at <code>xmin,ymin</code> and the last bin at <code>xmax,ymax</code>, containing <code>Nx,Ny</code> bins in x-/y-direction. You can use the result to fill new image column (with <code>Nx</code> columns and <code>Ny</code> rows) in a <code><a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a></code>, which can then be used to draw the histogram.</p>
<p>First we have to determine the x- and y-range of data and calculate the number of bins from these:</p>
@ -313,7 +313,7 @@ Marginal Statistics</h1>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_gac73ef98710f4a642e534daf4d9e18709"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#gac73ef98710f4a642e534daf4d9e18709">jkqtpstatAddHistogram2DContour</a></div><div class="ttdeci">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 &amp;histogramcolumnBaseName=QString(&quot;histogram&quot;), double *oxmin=nullptr, double *oxmax=nullptr, double *oymin=nullptr, double *oymax=nullptr)</div><div class="ttdoc">calculate calculate a 2-dimensional histogram and add a JKQTPColumnContourPlot to the given plotter,...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:1114</div></div>
</div><!-- fragment --><p>These differ in the type of plot that is added <code><a class="el" href="group__jkqtptools__math__statistics__adaptors.html#ga0903341fc5a3e297a9f6c547df4b222f" title="calculate calculate a 2-dimensional histogram and add a JKQTPColumnMathImage to the given plotter,...">jkqtpstatAddHistogram2DImage()</a></code> adds an image graph (<code><a class="el" href="class_j_k_q_t_p_column_math_image.html" title="class to plot an image from an 2-dimensional array of values stored in a column of the datastore">JKQTPColumnMathImage</a></code>) and <code><a class="el" href="group__jkqtptools__math__statistics__adaptors.html#gac73ef98710f4a642e534daf4d9e18709" title="calculate calculate a 2-dimensional histogram and add a JKQTPColumnContourPlot to the given plotter,...">jkqtpstatAddHistogram2DContour()</a></code> adds a contour plot (<code><a class="el" href="class_j_k_q_t_p_column_contour_plot.html" title="class for a contour plots (same as JKQTPContourPlot) of images stored in a JKQTPDatastore column">JKQTPColumnContourPlot</a></code>). A contour plot may look like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_histcontour.png" alt="datastore_statistics_2d_histcontour" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md51"></a>
<h1><a class="anchor" id="autotoc_md62"></a>
Kernel Density Estimates (KDE)</h1>
<p>Especially when only few samples from a distribution are available, histograms are not good at representing the underlying data distribution. In such cases, <a href="https://en.wikipedia.org/wiki/Multivariate_kernel_density_estimation">Kernel Density Estimates (KDE)</a> can help, which are basically a smoothed variant of a histogram. The <a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a> supports calculating them via e.g. <code><a class="el" href="group__jkqtptools__math__statistics__2dkde.html#gabea5faa220697a680179e0460ab6a46d" title="calculate an autoranged 2-dimensional Kernel Density Estimation (KDE) from the given data range first...">jkqtpstatKDE2D()</a></code>:</p>
<p>This functions calculates a histogram on a given grid with the first bin at <code>xmin,ymin</code> and the last bin at <code>xmax,ymax</code>, containing <code>Nx,Ny</code> bins in x-/y-direction. You can use the result to fill new image column (with <code>Nx</code> columns and <code>Ny</code> rows) in a <code><a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a></code>, which can then be used to draw the histogram.</p>
@ -352,7 +352,7 @@ Kernel Density Estimates (KDE)</h1>
<div class="ttc" id="agroup__jkqtptools__math__statistics__adaptors_html_ga7921c9edeb90d7eba8a36076528db331"><div class="ttname"><a href="group__jkqtptools__math__statistics__adaptors.html#ga7921c9edeb90d7eba8a36076528db331">jkqtpstatAddKDE2DContour</a></div><div class="ttdeci">JKQTPColumnContourPlot * jkqtpstatAddKDE2DContour(JKQTBasePlotter *plotter, InputItX firstX, InputItX lastX, InputItY firstY, InputItY lastY, size_t xbins=10, size_t ybins=10, const std::function&lt; double(double, double)&gt; &amp;kernel=std::function&lt; double(double, double)&gt;(&amp;jkqtpstatKernel2DGaussian), double bandwidthX=1.0, double bandwidthY=1.0, const QString &amp;kdecolumnBaseName=QString(&quot;histogram&quot;), double *oxmin=nullptr, double *oxmax=nullptr, double *oymin=nullptr, double *oymax=nullptr)</div><div class="ttdoc">calculate calculate a 2-dimensional kernel density estimate (KDE) and add a JKQTPColumnContourPlot to...</div><div class="ttdef"><b>Definition</b> jkqtpstatisticsadaptors.h:1697</div></div>
</div><!-- fragment --><p>These differ in the type of plot that is added <code><a class="el" href="group__jkqtptools__math__statistics__adaptors.html#ga2169e4129730d013f94ad81ccf47209b" title="calculate calculate a 2-dimensional kernel density estimate (KDE) and add a JKQTPColumnMathImage to t...">jkqtpstatAddKDE2DImage()</a></code> adds an image graph (<code><a class="el" href="class_j_k_q_t_p_column_math_image.html" title="class to plot an image from an 2-dimensional array of values stored in a column of the datastore">JKQTPColumnMathImage</a></code>) and <code><a class="el" href="group__jkqtptools__math__statistics__adaptors.html#ga7921c9edeb90d7eba8a36076528db331" title="calculate calculate a 2-dimensional kernel density estimate (KDE) and add a JKQTPColumnContourPlot to...">jkqtpstatAddKDE2DContour()</a></code> adds a contour plot (<code><a class="el" href="class_j_k_q_t_p_column_contour_plot.html" title="class for a contour plots (same as JKQTPContourPlot) of images stored in a JKQTPDatastore column">JKQTPColumnContourPlot</a></code>). the first is shown in the screenshot above, the latter looks like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d_kdecontour.png" alt="datastore_statistics_2d_kdecontour" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md52"></a>
<h1><a class="anchor" id="autotoc_md63"></a>
Screenshot of the full Program</h1>
<p>The output of the full test program <a href="https://github.com/jkriege2/JKQtPlotter/tree/master/examples/datastore_statistics_2d/datastore_statistics_2d.cpp"><code>datastore_statistics_2d.cpp</code></a> looks like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/datastore_statistics_2d.png" alt="datastore_statistics_2d" class="inline"/> </p>
@ -364,7 +364,7 @@ Screenshot of the full Program</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -343,7 +343,7 @@ Screenshot of the full Program</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -240,7 +240,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_boxplot_styling.html'
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -215,7 +215,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_boxplots_graphs.html'
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -250,7 +250,7 @@ Gimmick: Animating a Contour Plot</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -117,11 +117,11 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_date_time_axes.html',
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#autotoc_md62">Date Axis</a></li>
<li class="level1"><a href="#autotoc_md63">Time Axis</a></li>
<ul><li class="level1"><a href="#autotoc_md57">Date Axis</a></li>
<li class="level1"><a href="#autotoc_md58">Time Axis</a></li>
</ul>
</div>
<div class="textblock"><h1><a class="anchor" id="autotoc_md62"></a>
<div class="textblock"><h1><a class="anchor" id="autotoc_md57"></a>
Date Axis</h1>
<p>This project (see <code>./examples/dateaxes/</code>) simply creates a <a class="el" href="class_j_k_q_t_plotter.html" title="plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)">JKQTPlotter</a> widget (as a new window) with the X-axis showing time or date(-time) values, formated as such.</p>
<p>The source code of the main application can be found in <a href="https://github.com/jkriege2/JKQtPlotter/tree/master/examples/dateaxes/dateaxes.cpp"><code>dateaxes.cpp</code></a>.</p>
@ -219,7 +219,7 @@ Date Axis</h1>
<div class="ttc" id="agroup__jkqtpplottersupprt_html_ggad58b8a9812defae065b13b76154c8d2eae74a5730d5380cdaa3a436b199af2f3c"><div class="ttname"><a href="group__jkqtpplottersupprt.html#ggad58b8a9812defae065b13b76154c8d2eae74a5730d5380cdaa3a436b199af2f3c">JKQTPCALTdatetime</a></div><div class="ttdeci">@ JKQTPCALTdatetime</div><div class="ttdoc">show numbers as times</div><div class="ttdef"><b>Definition</b> jkqtptools.h:457</div></div>
</div><!-- fragment --><p>The result looks like this:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/dateaxes.png" alt="symbols_and_styles" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md63"></a>
<h1><a class="anchor" id="autotoc_md58"></a>
Time Axis</h1>
<p>A second variant (see the example CPP-file) displays data with a time-axis:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/dateaxes_timeaxis.png" alt="symbols_and_styles" class="inline"/></p>
@ -269,7 +269,7 @@ Time Axis</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -300,7 +300,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_distribution_plot.htm
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -143,7 +143,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_doc_image_render_cmd_
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -251,7 +251,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_error_bar_styles.html
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -186,7 +186,7 @@ Notes</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -175,7 +175,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_filled_graphs.html','
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -203,7 +203,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_filled_graphs_error_b
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -251,7 +251,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_financial_chart_examp
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -220,7 +220,7 @@ Notes</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -187,7 +187,7 @@ Screenshot</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_geometric_bezier.html
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -145,7 +145,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_geometric_coordinate_
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -284,7 +284,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_geometric_graphs.html
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_geometric_graphs_simp
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -197,7 +197,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_graph_labels_example.
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -282,7 +282,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot.html','');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -263,7 +263,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot_c_img.html
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -278,7 +278,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot_modifier.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -247,7 +247,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot_no_datasto
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -265,7 +265,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot_open_c_v.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot_q_image_r_
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -250,7 +250,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot_r_g_b_c_im
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -249,7 +249,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_image_plot_r_g_b_open
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -331,7 +331,7 @@ Main Program of the Example (GUI)</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -171,7 +171,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_impulse_plots.html','
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -215,7 +215,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_log_axes.html',''); i
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -285,7 +285,7 @@ How it works</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -217,7 +217,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_multi_plot_layout.htm
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -239,7 +239,7 @@ batch runs = 3<br />
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -256,7 +256,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_param_scatter.html','
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_param_scatter_image.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -175,7 +175,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_parametric_curves.htm
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -180,7 +180,7 @@ Properties of the Adaptive Plotting Algorithm</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -199,7 +199,7 @@ Form Class &lt;tt&gt;FormWithJKQTPlotter&lt;/tt&gt;</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -270,7 +270,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_r_g_b_image_plot.html
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -236,7 +236,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_secondary_axes.html',
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -187,7 +187,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_simple_test.html','')
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_special_step_line_plo
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -214,7 +214,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_speed_test.html','');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -243,7 +243,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_stacked_bar_chart.htm
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -217,7 +217,7 @@ Some Example Styles</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -179,7 +179,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_symbols_and_styles.ht
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -212,7 +212,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_symbols_errors.html',
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -207,7 +207,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_u_i_scrollbar.html','
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -275,7 +275,7 @@ Special Context Menu</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -178,7 +178,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_vector_field_example.
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -117,16 +117,16 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_violinplot_graphs.htm
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#autotoc_md118">Generating a test Dataset</a></li>
<li class="level1"><a href="#autotoc_md119">Visualizing data as a Rug Plot</a></li>
<li class="level1"><a href="#autotoc_md120">Drawing the (vertical) Violin Plot</a></li>
<li class="level1"><a href="#autotoc_md121">Drawing a horizontal Violin Plot</a></li>
<ul><li class="level1"><a href="#autotoc_md116">Generating a test Dataset</a></li>
<li class="level1"><a href="#autotoc_md117">Visualizing data as a Rug Plot</a></li>
<li class="level1"><a href="#autotoc_md118">Drawing the (vertical) Violin Plot</a></li>
<li class="level1"><a href="#autotoc_md120">Drawing a horizontal Violin Plot</a></li>
<li class="level1"><a href="#autotoc_md122">Adapters as shortcuts to drawing Violin Plots</a></li>
</ul>
</div>
<div class="textblock"><p>This project (see <a href="https://github.com/jkriege2/JKQtPlotter/tree/master/examples/violinplot"><code>violinplot</code></a> demonstrates how to use <a class="el" href="class_j_k_q_t_plotter.html" title="plotter widget for scientific plots (uses JKQTBasePlotter to do the actual drawing)">JKQTPlotter</a> to draw <a href="https://en.wikipedia.org/wiki/Violin_plot">violin plots</a> using the classes <code><a class="el" href="class_j_k_q_t_p_violinplot_vertical_element.html" title="This implements a single vertical Violin Plot as a &quot;geometric element&quot;.">JKQTPViolinplotVerticalElement</a></code> and <code><a class="el" href="class_j_k_q_t_p_violinplot_horizontal_element.html" title="This implements a single horizontal Violin Plot as a &quot;geometric element&quot;.">JKQTPViolinplotHorizontalElement</a></code>. 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 <a class="el" href="group__jkqtptools__math__statistics.html">JKQTPlotter Statistics Library</a>.</p>
<p>The source code of the main application is (see <a href="violinplot.cpp"><code>violinplot.cpp</code></a>.</p>
<h1><a class="anchor" id="autotoc_md118"></a>
<h1><a class="anchor" id="autotoc_md116"></a>
Generating a test Dataset</h1>
<p>First we generate some random numbers from a bimodal distribution (and as a by-product also from two single-distributions that form the bimodal): </p><div class="fragment"><div class="line"><span class="keywordtype">size_t</span> randomdatacol1=datastore1-&gt;addColumn(<span class="stringliteral">&quot;random data N(1,1)+N(6,2)&quot;</span>);</div>
<div class="line"><span class="keywordtype">size_t</span> randomdatacol2=datastore1-&gt;addColumn(<span class="stringliteral">&quot;random data N(1,1)&quot;</span>);</div>
@ -147,7 +147,7 @@ Generating a test Dataset</h1>
<div class="line"> }</div>
<div class="line"> datastore1-&gt;appendToColumn(randomdatacol1, v);</div>
<div class="line">}</div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md119"></a>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md117"></a>
Visualizing data as a Rug Plot</h1>
<p>Samples from the bimodal (built from two gaussian distributions <code>d1</code> and <code>d2</code>) are collected in <code>randomdatacol1</code>, whereas <code>randomdatacol2</code> and <code>randomdatacol3</code> collect those numbers that were drawn from <code>d1</code> or <code>d2</code> respectively.</p>
<p>Such data can be visualized by <code><a class="el" href="class_j_k_q_t_p_single_column_symbols_graph.html" title="plots a 1-column set of data-values with symbols onto a JKQtPlotter/JKQtBasePlotter....">JKQTPSingleColumnSymbolsGraph</a></code>, here using a rug plot (using <code>gData1-&gt;setPositionScatterStyle(JKQTPSingleColumnSymbolsGraph::RugPlot);</code> ... but also e.g. a ee swarm plot would be possible):</p>
@ -164,7 +164,7 @@ Visualizing data as a Rug Plot</h1>
<div class="ttc" id="aclass_j_k_q_t_p_single_column_symbols_graph_html_a3631b52ee32dceb1418183aefe7f7ce4a60c61271a6e7cdee0c8c8f78e4e55a17"><div class="ttname"><a href="class_j_k_q_t_p_single_column_symbols_graph.html#a3631b52ee32dceb1418183aefe7f7ce4a60c61271a6e7cdee0c8c8f78e4e55a17">JKQTPSingleColumnSymbolsGraph::RugPlot</a></div><div class="ttdeci">@ RugPlot</div><div class="ttdoc">like NoScatter but draws each data-point as a horzintal/vertical line, centered around position,...</div><div class="ttdef"><b>Definition</b> jkqtpsinglecolumnsymbols.h:59</div></div>
<div class="ttc" id="aclass_j_k_q_t_p_single_column_symbols_graph_html_a70158ca6e9b890d427438f2314b10e09"><div class="ttname"><a href="class_j_k_q_t_p_single_column_symbols_graph.html#a70158ca6e9b890d427438f2314b10e09">JKQTPSingleColumnSymbolsGraph::setPosition</a></div><div class="ttdeci">void setPosition(double __value)</div><div class="ttdoc">missing coordinate, i.e. if the data from dataColumn is interpreted as x-values, this is the y-positi...</div></div>
<div class="ttc" id="aclass_j_k_q_t_p_single_column_symbols_graph_html_a8fc0864e7e4008ec1797b3dc81d0f375"><div class="ttname"><a href="class_j_k_q_t_p_single_column_symbols_graph.html#a8fc0864e7e4008ec1797b3dc81d0f375">JKQTPSingleColumnSymbolsGraph::setPositionScatterStyle</a></div><div class="ttdeci">void setPositionScatterStyle(ScatterStyle __value)</div><div class="ttdoc">how to distribute the datapoints from dataColumn at the location position</div></div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md120"></a>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md118"></a>
Drawing the (vertical) Violin Plot</h1>
<p>Now we need to calculate the kernel density estimate from the data in <code>randomdatacol1</code> and store the result in two new columns <code>cViol1Cat</code> and <code>cViol1Freq</code>:</p>
<div class="fragment"><div class="line"><span class="keywordtype">size_t</span> cViol1Cat=datastore1-&gt;addColumn(<span class="stringliteral">&quot;violin 1, cat&quot;</span>);</div>
@ -221,7 +221,7 @@ Drawing the (vertical) Violin Plot</h1>
<div class="line"> 21, <span class="keyword">true</span>, <span class="keyword">false</span>, <a class="code hl_enumvalue" href="group__jkqtptools__math__statistics__1dhist.html#ggab6b155ded164a7ae39a7024792251373ac271d359b3a61c63c913c77625757c7c">JKQTPStatHistogramBinXMode::XIsMid</a>);</div>
<div class="ttc" id="agroup__jkqtptools__math__statistics__1dhist_html_gaa83dbe625d4507f55629eaaf96a09cf8"><div class="ttname"><a href="group__jkqtptools__math__statistics__1dhist.html#gaa83dbe625d4507f55629eaaf96a09cf8">jkqtpstatHistogram1DAutoranged</a></div><div class="ttdeci">void jkqtpstatHistogram1DAutoranged(InputIt first, InputIt last, OutputIt histogramXOut, OutputIt histogramYOut, int bins=11, bool normalized=true, bool cummulative=false, JKQTPStatHistogramBinXMode binXMode=JKQTPStatHistogramBinXMode::XIsLeft)</div><div class="ttdoc">calculate an autoranged 1-dimensional histogram from the given data range first .....</div><div class="ttdef"><b>Definition</b> jkqtpstathistogram.h:73</div></div>
<div class="ttc" id="agroup__jkqtptools__math__statistics__1dhist_html_ggab6b155ded164a7ae39a7024792251373ac271d359b3a61c63c913c77625757c7c"><div class="ttname"><a href="group__jkqtptools__math__statistics__1dhist.html#ggab6b155ded164a7ae39a7024792251373ac271d359b3a61c63c913c77625757c7c">JKQTPStatHistogramBinXMode::XIsMid</a></div><div class="ttdeci">@ XIsMid</div><div class="ttdoc">x-location is the middle of the bin</div></div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md121"></a>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md120"></a>
Drawing a horizontal Violin Plot</h1>
<p>Finally note that if you use <code><a class="el" href="class_j_k_q_t_p_violinplot_horizontal_element.html" title="This implements a single horizontal Violin Plot as a &quot;geometric element&quot;.">JKQTPViolinplotHorizontalElement</a></code> instead of the <code><a class="el" href="class_j_k_q_t_p_violinplot_vertical_element.html" title="This implements a single vertical Violin Plot as a &quot;geometric element&quot;.">JKQTPViolinplotVerticalElement</a></code> used above, you can also draw horizontal violin plots:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/violinplot_hor.png" alt="violinplot_hor" class="inline"/></p>
@ -251,7 +251,7 @@ Adapters as shortcuts to drawing Violin Plots</h1>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -118,7 +118,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotter_wiggle_plots.html',''
<div class="contents">
<div class="textblock"><p>This project (see <code>./examples/wiggleplots/</code>) demonstrates how to draw "wiggle plots" with JKQtPlotter, using <code><a class="el" href="class_j_k_q_t_p_filled_curve_x_graph.html" title="This implements filled curve plots where the area is filled between the plot line and the x-Axis.">JKQTPFilledCurveXGraph</a></code> or <code><a class="el" href="class_j_k_q_t_p_filled_curve_y_graph.html" title="This implements filled curve plots where the area is filled between the plot line and y-Axis.">JKQTPFilledCurveYGraph</a></code>. Wiggle plots are plots, where the fill color is different above and below the baseline of the plot. They are e.g. used in seismology.</p>
<p>The source code of the main application can be found in <a href="https://github.com/jkriege2/JKQtPlotter/tree/master/examples/wiggleplots/wiggleplots.cpp"><code>wiggleplots.cpp</code></a>. If creates two different plots that demonstrate two styles of plots and also uses the horizontal and vertical variant of the graph class.</p>
<h1><a class="anchor" id="autotoc_md116"></a>
<h1><a class="anchor" id="autotoc_md119"></a>
Plot red/blue wiggle plot using &lt;tt&gt;JKQTPFilledCurveXGraph&lt;/tt&gt;</h1>
<p>For the first example we simulate a 1D random walk and plot the result as a filles wiggle plot:</p>
<p>In a first step, we obtain a pointer to the <a class="el" href="class_j_k_q_t_p_datastore.html" title="This class manages data columns (with entries of type double ), used by JKQTPlotter/JKQTBasePlotter t...">JKQTPDatastore</a> and add two columns to it. </p><div class="fragment"><div class="line"><span class="comment">// 1. get a pointer to the internal datastore (for convenience)</span></div>
@ -195,7 +195,7 @@ Plot red/blue wiggle plot using &lt;tt&gt;JKQTPFilledCurveXGraph&lt;/tt&gt;</h1>
<div class="line">plot.resize(600,400);</div>
</div><!-- fragment --><p>This is the resulting plot:</p>
<p><img src="https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/wiggleplot_x.png" alt="wiggleplot of random walk" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md117"></a>
<h1><a class="anchor" id="autotoc_md121"></a>
Plot black/transparent wiggle plot using &lt;tt&gt;JKQTPFilledCurveYGraph&lt;/tt&gt; in a "seismographic style"</h1>
<p>The second example follows mor or less the same steps as above, but here we add several graphs that each show a wavepacket that is shoft slightly:</p>
<div class="fragment"><div class="line"><span class="comment">// 3. now we calculate several wavepackets and add a graph for each.</span></div>
@ -252,7 +252,7 @@ Plot black/transparent wiggle plot using &lt;tt&gt;JKQTPFilledCurveYGraph&lt;/tt
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -189,7 +189,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotterparamscatter_custom_sy
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -164,7 +164,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotterscatter.html',''); ini
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -231,7 +231,7 @@ $(document).ready(function(){initNavTree('_j_k_q_t_plotterscatter_custom_symbol.
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="example_tutorial_projects.html">Example &amp; Tutorial Projects</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:22 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -442,7 +442,7 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:25 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -177,7 +177,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_annotations_specific_sty
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -573,7 +573,7 @@ Public Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_annotations_specific_style_properties.html">JKQTAnnotationsSpecificStyleProperties</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -165,7 +165,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_barchart_specific_style_
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -556,7 +556,7 @@ Public Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_barchart_specific_style_properties.html">JKQTBarchartSpecificStyleProperties</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -616,7 +616,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_base_plotter.html','');
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -1711,11 +1711,11 @@ Aspect Ratios</h2>
<p>First note that this functionality is only available and activated if both axes are linear!</p>
<p>You can set two different aspect ratios:</p><ul>
<li>The ratio of plotWidth/plotHeight (<a class="el" href="class_j_k_q_t_base_plotter.html#a06364dc4fb497fc42b7b8dbbe32f0638" title="sets the data aspect ratio, enforced with setMaintainApsectRatio(true)">setAspectRatio()</a>, <a class="el" href="class_j_k_q_t_base_plotter.html#a1360fa41c72a05e4142527e3322e2d61" title="en-/disables the maintaining of the data aspect ratio">setMaintainAspectRatio()</a>) will keep the plots pixel-width and height at a certain value. <p class="formulaDsp">
<picture><source srcset="form_220_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{aspectRatio}=\frac{\mbox{plotWidth}}{\mbox{plotHeight}} \]" src="form_220.png" width="182" height="39"/></picture>
<picture><source srcset="form_221_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{aspectRatio}=\frac{\mbox{plotWidth}}{\mbox{plotHeight}} \]" src="form_221.png" width="182" height="39"/></picture>
</p>
</li>
<li>The ratio of (xmax-xmin)/(ymax-ymin) (<a class="el" href="class_j_k_q_t_base_plotter.html#a9b2ec97c3bf2f8e86b70e278794ab149" title="sets the axis aspect ratio, enforced with setMaintainAxisApsectRatio(true)">setAxisAspectRatio()</a>, <a class="el" href="class_j_k_q_t_base_plotter.html#a3fdaa585b8b1a150321b19742091ddaa" title="en-/disables the maintaining of the axis aspect ratio">setMaintainAxisAspectRatio()</a>) will keep the displayed axis ranges in a certain ratio. <p class="formulaDsp">
<picture><source srcset="form_221_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]" src="form_221.png" width="234" height="41"/></picture>
<picture><source srcset="form_222_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]" src="form_222.png" width="234" height="41"/></picture>
</p>
</li>
</ul>
@ -12613,10 +12613,10 @@ y-axis</td></tr>
<table class="params">
<tr><td class="paramname">zoomX</td><td>if set <code>true</code> (default) zooms the x axis </td></tr>
<tr><td class="paramname">zoomY</td><td>if set <code>true</code> (default) zooms the y axis </td></tr>
<tr><td class="paramname">includeX0</td><td>if this is <code>true</code> <a class="el" href="class_j_k_q_t_base_plotter.html#a0f8b714129f2f387985231c186f4f618" title="this method zooms the graph so that all plotted datapoints are visible.">zoomToFit()</a> will ensure that <picture><source srcset="form_240_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ x=0 $" src="form_240.png" width="41" height="11"/></picture> is visible in the plot (only for non-logx plots, default: false) </td></tr>
<tr><td class="paramname">includeY0</td><td>if this is <code>true</code> <a class="el" href="class_j_k_q_t_base_plotter.html#a0f8b714129f2f387985231c186f4f618" title="this method zooms the graph so that all plotted datapoints are visible.">zoomToFit()</a> will ensure that <picture><source srcset="form_241_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ y=0 $" src="form_241.png" width="39" height="15"/></picture> is visible in the plot (only for non-logy plots, default: false) </td></tr>
<tr><td class="paramname">scaleX</td><td>the plot will have a width of <picture><source srcset="form_242_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \mbox{Xscale}\cdot\Delta x $" src="form_242.png" width="81" height="13"/></picture> where <picture><source srcset="form_243_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \Delta x $" src="form_243.png" width="23" height="13"/></picture> is the actual x-axis data range For logx plots we actually use this on the logarithmized data! (default: 1.05) </td></tr>
<tr><td class="paramname">scaleY</td><td>the plot will have a height of <picture><source srcset="form_244_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \mbox{Yscale}\cdot\Delta &lt; $" src="form_244.png" width="88" height="15"/></picture> where <picture><source srcset="form_245_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \Delta &lt; $" src="form_245.png" width="29" height="15"/></picture> is the actual &lt;-axis data range For log&lt; plots we actually use this on the logarithmized data! (default: 1.05) </td></tr>
<tr><td class="paramname">includeX0</td><td>if this is <code>true</code> <a class="el" href="class_j_k_q_t_base_plotter.html#a0f8b714129f2f387985231c186f4f618" title="this method zooms the graph so that all plotted datapoints are visible.">zoomToFit()</a> will ensure that <picture><source srcset="form_251_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ x=0 $" src="form_251.png" width="41" height="11"/></picture> is visible in the plot (only for non-logx plots, default: false) </td></tr>
<tr><td class="paramname">includeY0</td><td>if this is <code>true</code> <a class="el" href="class_j_k_q_t_base_plotter.html#a0f8b714129f2f387985231c186f4f618" title="this method zooms the graph so that all plotted datapoints are visible.">zoomToFit()</a> will ensure that <picture><source srcset="form_252_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ y=0 $" src="form_252.png" width="39" height="15"/></picture> is visible in the plot (only for non-logy plots, default: false) </td></tr>
<tr><td class="paramname">scaleX</td><td>the plot will have a width of <picture><source srcset="form_253_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \mbox{Xscale}\cdot\Delta x $" src="form_253.png" width="81" height="13"/></picture> where <picture><source srcset="form_254_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \Delta x $" src="form_254.png" width="23" height="13"/></picture> is the actual x-axis data range For logx plots we actually use this on the logarithmized data! (default: 1.05) </td></tr>
<tr><td class="paramname">scaleY</td><td>the plot will have a height of <picture><source srcset="form_255_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \mbox{Yscale}\cdot\Delta &lt; $" src="form_255.png" width="88" height="15"/></picture> where <picture><source srcset="form_256_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \Delta &lt; $" src="form_256.png" width="29" height="15"/></picture> is the actual &lt;-axis data range For log&lt; plots we actually use this on the logarithmized data! (default: 1.05) </td></tr>
</table>
</dd>
</dl>
@ -13027,7 +13027,7 @@ y-axis</td></tr>
<p>the aspect ratio of plotwidth and plotheight to maintain, if <code>maintainAspectRatio==true</code> </p>
<p class="formulaDsp">
<picture><source srcset="form_220_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{aspectRatio}=\frac{\mbox{plotWidth}}{\mbox{plotHeight}} \]" src="form_220.png" width="182" height="39"/></picture>
<picture><source srcset="form_221_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{aspectRatio}=\frac{\mbox{plotWidth}}{\mbox{plotHeight}} \]" src="form_221.png" width="182" height="39"/></picture>
</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_j_k_q_t_base_plotter.html#af0720a1e655e8f24ef3914874b2dfec8" title="indicates whether the widget should maintain an aspect ratio of plotwidth and plotheight">maintainAspectRatio</a> </dd></dl>
@ -13055,7 +13055,7 @@ y-axis</td></tr>
<p>the aspect ratio of axis widths to maintain, if <code>maintainAxisAspectRatio==true</code> </p>
<p>When the axis aspect ratio is to be maintained and new axis ranges are set (e.g. when calling <a class="el" href="class_j_k_q_t_base_plotter.html#ad7c6f70086ae7762a22c4c35509878e1" title="sets the x- and y-range of the plot (minimum and maximum values on the x-/y-axis)">setXY()</a> ), the given axis ranges are modified, so </p><p class="formulaDsp">
<picture><source srcset="form_221_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]" src="form_221.png" width="234" height="41"/></picture>
<picture><source srcset="form_222_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]" src="form_222.png" width="234" height="41"/></picture>
</p>
<dl class="section note"><dt>Note</dt><dd>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</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_j_k_q_t_base_plotter.html#a137bf3f5fcd473fbb4177290eb53db6d" title="indicates whether the axes should maintain an aspect ratio">maintainAxisAspectRatio</a> </dd></dl>
@ -14137,7 +14137,7 @@ y-axis</td></tr>
<p>indicates whether the axes should maintain an aspect ratio </p>
<p>When the axis aspect ratio is to be maintained and new axis ranges are set (e.g. when calling <a class="el" href="class_j_k_q_t_base_plotter.html#ad7c6f70086ae7762a22c4c35509878e1" title="sets the x- and y-range of the plot (minimum and maximum values on the x-/y-axis)">setXY()</a> ), the given axis ranges are modified, so </p><p class="formulaDsp">
<picture><source srcset="form_221_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]" src="form_221.png" width="234" height="41"/></picture>
<picture><source srcset="form_222_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \mbox{axisAspectRatio}=\frac{\left|x_\text{max}-x_\text{min}\right|}{\left|y_\text{max}-y_\text{min}\right|} \]" src="form_222.png" width="234" height="41"/></picture>
</p>
<dl class="section note"><dt>Note</dt><dd>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</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_j_k_q_t_base_plotter.html#a4664db3c06865c8618dd0c70c7551caf" title="the aspect ratio of axis widths to maintain, if maintainAxisAspectRatio==true">axisAspectRatio</a> </dd></dl>
@ -14949,7 +14949,7 @@ y-axis</td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_base_plotter.html">JKQTBasePlotter</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -176,7 +176,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_base_plotter_1_1_j_k_q_t
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -1057,7 +1057,7 @@ Protected Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_base_plotter.html">JKQTBasePlotter</a></li><li class="navelem"><a class="el" href="class_j_k_q_t_base_plotter_1_1_j_k_q_t_p_pen.html">JKQTPPen</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_base_plotter_1_1_plot_ma
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -395,7 +395,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_base_plotter.html">JKQTBasePlotter</a></li><li class="navelem"><a class="el" href="class_j_k_q_t_base_plotter_1_1_plot_margins.html">PlotMargins</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -170,7 +170,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_base_plotter_style.html'
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -938,7 +938,7 @@ Public Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_base_plotter_style.html">JKQTBasePlotterStyle</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -186,7 +186,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_f_p_line_plot.html','');
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -1567,7 +1567,7 @@ Additional Inherited Members</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_f_p_line_plot.html">JKQTFPLinePlot</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -143,7 +143,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_f_p_plot.html',''); init
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -444,7 +444,7 @@ Protected Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_f_p_plot.html">JKQTFPPlot</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -160,7 +160,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_f_p_q_image_plot.html','
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -758,7 +758,7 @@ Additional Inherited Members</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_f_p_q_image_plot.html">JKQTFPQImagePlot</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -156,7 +156,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_f_p_q_overlay_linear_gri
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -642,7 +642,7 @@ Additional Inherited Members</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_f_p_q_overlay_linear_grid_plot.html">JKQTFPQOverlayLinearGridPlot</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_f_p_q_scale_bar_x_plot.h
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -883,7 +883,7 @@ Protected Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_f_p_q_scale_bar_x_plot.html">JKQTFPQScaleBarXPlot</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -218,7 +218,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_f_p_r_g_b_image_overlay_
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -2710,7 +2710,7 @@ Protected Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_f_p_r_g_b_image_overlay_plot.html">JKQTFPRGBImageOverlayPlot</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -188,7 +188,7 @@ $(document).ready(function(){initNavTree('class_j_k_q_t_f_p_v_bar_plot.html','')
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

View File

@ -496,7 +496,7 @@ Additional Inherited Members</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_j_k_q_t_f_p_v_bar_plot.html">JKQTFPVBarPlot</a></li>
<li class="footer">Generated on Wed Oct 16 2024 11:27:24 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
<li class="footer">Generated on Thu Oct 17 2024 10:44:23 for JKQTPlotter by <a href="https://www.doxygen.org/index.html">doxygen</a> 1.9.8 </li>
</ul>
</div>
</body>

Some files were not shown because too many files have changed in this diff Show More