summaryrefslogtreecommitdiffstats
path: root/src/charts/doc/src/examples-boxplotchart.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/doc/src/examples-boxplotchart.qdoc')
-rw-r--r--src/charts/doc/src/examples-boxplotchart.qdoc78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/charts/doc/src/examples-boxplotchart.qdoc b/src/charts/doc/src/examples-boxplotchart.qdoc
new file mode 100644
index 00000000..c4d1eea4
--- /dev/null
+++ b/src/charts/doc/src/examples-boxplotchart.qdoc
@@ -0,0 +1,78 @@
+/*!
+ \example boxplotchart
+ \title Box and Whiskers Example
+ \ingroup qtcharts_examples
+
+ \brief The example shows how to create a box-and-whiskers chart.
+
+ The example also shows how to read the non-continuous data from a file,
+ arrange it and find medians needed for box-and-whiskers plotting.
+
+ \image examples_boxplotchart.png
+
+ To show the share deviation of two companies we start by creating two QBoxPlotSeries to handle monthly data.
+
+ \snippet boxplotchart/main.cpp 1
+
+ QFile class is used to open a text file where the non-continuous data is kept. The BoxDataReader is an auxiliary class for
+ reading the text file and finding the extreme and median values from the data. The BoxDataReader is explained in more detail later.
+ The method readBox reads the values and sets them to the QBoxSet item which the method returns for the caller. The returned QBoxSet
+ item is added to the series.
+
+ \snippet boxplotchart/main.cpp 2
+
+ In this section a second file is opened for reading the data for the second company.
+
+ \snippet boxplotchart/main.cpp 3
+
+ In this code snippet a new QChart instance is created and previously created series are added to it. The title is also defined and
+ animation is set to be SeriesAnimation.
+
+ \snippet boxplotchart/main.cpp 4
+
+ Here we ask the chart to create default axes for our presentation. We also set the range for the vertical axis by querying the pointer
+ for the axis from the chart, and then setting the min and max for that axis.
+
+ \snippet boxplotchart/main.cpp 5
+
+ In this section we set the legends to be visible and place them at the bottom of the chart.
+
+ \snippet boxplotchart/main.cpp 6
+
+ Finally, we add the chart onto a view. We also turn on the antialiasing for the chartView.
+
+ \snippet boxplotchart/main.cpp 7
+
+ The chart is ready to be shown. We set the chart to be the central widget of the window.
+ We also set the size for the chart window and show it.
+
+ \snippet boxplotchart/main.cpp 8
+
+ Here the method readBox is explained in detail. Firstly, a line is read from the file and lines starting with # are rejected
+ since they are considered as comment lines.
+
+ \snippet boxplotchart/boxdatareader.cpp 1
+
+ In this file the data is arranged as number, space, number, or space. On this snippet the line is split into single number strings which
+ are stored on QStringList.
+
+ \snippet boxplotchart/boxdatareader.cpp 2
+
+ The sortedList will hold the numbers in continuous order and in this code segment we show how to do it. First the sortedList is cleared and numbers
+ are read from the strList and stored into sortedList in double format. The qSort method arranges the sortedList into continuous order
+ starting from the smallest.
+
+ \snippet boxplotchart/boxdatareader.cpp 3
+
+ Below you will find a code sample showing how to select extremes and medians from the continuous data. Firstly a new QBoxSet is created.
+ Lower and upper extremes are simple to select; they are just first and last items on the sortedList. For medians we use a helper
+ method findMedian which is explained later. For the median from the upper half we need to adjust the begin number if the
+ amount of the numbers is even or uneven. The end number for lower half comes naturally from int rounding.
+
+ \snippet boxplotchart/boxdatareader.cpp 4
+
+ Below you will find the code sample for the method findMedian. If the amount of numbers is uneven we select the number from
+ the middle. For even amount numbers we take two numbers from the middle and calculate the mean value.
+
+ \snippet boxplotchart/boxdatareader.cpp 5
+*/