JKQTPlotter trunk/v5.0.0
an extensive Qt5+Qt6 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
Loading...
Searching...
No Matches
Example (JKQTPlotter): Step Line Plots in Different Styles

This project (see ./examples/stepplots/) simply creates a JKQTPlotter widget (as a new window) and adds a single line-graph (a sine-wave). Data is initialized from two QVector<double> objects.

The source code of the main application can be found in stepplots.cpp. For the most part, several datasets of cosine-curves are generated. Then graphs of type JKQTPSpecialLineHorizontalGraph are added to the plot:

// 3 now we make several plots with different step styles, each one also contains a
// symbol plot indicating the location of the datapoints themselves
//-- JKQTPStepLeft ----------------------------------------------------------------------------------------
// set data for the graph
graph->setXColumn(columnX);
graph->setYColumn(columnY1);
// set step style
graph->setLineWidth(1);
graph->setFillCurve(true);
graph->setDrawLine(true);
graph->setTitle("JKQTPStepLeft, filled");
// enable symbols
graph->setDrawSymbols(true);
void setDrawLine(bool __value)
indicates whether to draw a line on the circumference of the described area (i.e. along the data poin...
void setFillCurve(bool __value)
indicates whether to fill the space between the curve and the x-axis
void setLineWidth(double __value)
set the line width of the graph line (in pt)
void setSymbolType(JKQTPGraphSymbols __value)
set the type of the graph symbol
virtual void setTitle(const QString &__value)
sets the title of the plot (for display in key!).
void setSpecialLineType(const JKQTPSpecialLineType &__value)
type of connecting (step)lines
void setDrawSymbols(bool __value)
indicates whether to draw a symbols at the datapoints, or not
This implements a step plot with values .
Definition jkqtpspecialline.h:97
void setYColumn(int __value)
the column that contains the y-component of the datapoints
void setXColumn(int __value)
the column that contains the x-component of the datapoints
@ JKQTPStepLeft
datapoint is on the left edge of the hor. step line
Definition jkqtptools.h:751
@ JKQTPCircle
an unfilled circle
Definition jkqtpdrawingtools.h:148

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

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

// add the graphs to the plot, so it is actually displayed
plot.addGraph(graph);

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

The result looks like this:

stepplots

If you use instead of the horizontal variant and exchange x- for y-data, you will get a plot like this:

stepplots_vertical.png

Also note how the red graph is filled towards the y-axis, not the x-axis.