Creating Area Charts▲
This is part of the Charts with Widgets Gallery example.
To create area charts, we need two QLineSeries instances. They are going to define the upper and lower boundary of the area.
auto
series0 =
new
QLineSeries;
auto
series1 =
new
QLineSeries;
We add data to both series and use the stream operator.
*
series0 &
lt;&
lt; QPointF(1
, 5
) &
lt;&
lt; QPointF(3
, 7
) &
lt;&
lt; QPointF(7
, 6
) &
lt;&
lt; QPointF(9
, 7
) &
lt;&
lt; QPointF(12
, 6
)
&
lt;&
lt; QPointF(16
, 7
) &
lt;&
lt; QPointF(18
, 5
);
*
series1 &
lt;&
lt; QPointF(1
, 3
) &
lt;&
lt; QPointF(3
, 4
) &
lt;&
lt; QPointF(7
, 3
) &
lt;&
lt; QPointF(8
, 2
) &
lt;&
lt; QPointF(12
, 3
)
&
lt;&
lt; QPointF(16
, 4
) &
lt;&
lt; QPointF(18
, 3
);
Now we create a QAreaSeries instance using two line series objects. We set the custom gradient fill and width of the outline.
auto
series =
new
QAreaSeries(series0, series1);
series-&
gt;setName("Batman"
);
QPen pen(0x059605
);
pen.setWidth(3
);
series-&
gt;setPen(pen);
QLinearGradient gradient(QPointF(0
, 0
), QPointF(0
, 1
));
gradient.setColorAt(0.0
, 0x3cc63c
);
gradient.setColorAt(1.0
, 0x26f626
);
gradient.setCoordinateMode(QGradient::
ObjectBoundingMode);
series-&
gt;setBrush(gradient);
Last we create the QChartView instance, set the title, set anti-aliasing, and add the area series. We also create the default axes and specify the ranges on them.
auto
chart =
new
QChart;
chart-&
gt;addSeries(series);
chart-&
gt;setTitle("Simple Area Chart"
);
chart-&
gt;createDefaultAxes();
chart-&
gt;axes(Qt::
Horizontal).first()-&
gt;setRange(0
, 20
);
chart-&
gt;axes(Qt::
Vertical).first()-&
gt;setRange(0
, 10
);
The chart is ready to be shown.
createDefaultChartView(chart);