创建条形图

注意: 这部分是图表控件库示例的一部分。

在所有条形图中,使用 barsets 的方式相同。为了说明不同条形图之间的差异,我们在示例中使用了相同的数据。条形图可视化的数据由 QBarSet 实例定义。在这里,我们创建集合并将数据添加到其中。数据使用 << 运算符添加。或者,也可以使用 append 方法。

auto set0 = new QBarSet("Jane");
auto set1 = new QBarSet("John");
auto set2 = new QBarSet("Axel");
auto set3 = new QBarSet("Mary");
auto set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

我们创建序列并将条形集添加到其中。序列拥有条形集。序列将来自集合的数据分组到类别中。每个集合的第一个值分到第一个类别,第二个值分到第二个类别,依此类推。

QBarSeries *series = new QBarSeries;
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

在这里我们创建图表对象并将序列添加到其中。我们使用 setTitle 为图表设置标题,然后通过调用 setAnimationOptions(QChart::SeriesAnimations) 启用序列的动画。

auto chart = new QChart;
chart->addSeries(series);
chart->setTitle("Simple Bar Chart");
chart->setAnimationOptions(QChart::SeriesAnimations);

要显示轴上的类别,我们需要为它创建一个 QBarCategoryAxis。在这里,我们创建了一个具有类别列表的类别轴,并将其设置为与底部对齐,作为x轴,并将其附加到序列上。图表将拥有轴的所有权。对于y轴,我们使用一个值轴,将其设置为与左侧对齐。

QStringList categories {"Jan", "Feb", "Mar", "Apr", "May", "Jun"};
auto axisX = new QBarCategoryAxis;
axisX->append(categories);
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);

auto axisY = new QValueAxis;
axisY->setRange(0,15);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);

我们还想显示图例。为此,我们从图表中获取图例指针并将其设置为可见。我们还通过将其对齐设置为 Qt::AlignBottom,将图例放置在图表的底部。

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

最后,我们将图表添加到一个视图中。

createDefaultChartView(chart);

© 2024 Qt公司。此处包含的文档贡献者是各自版权的拥有者。此处提供的文档根据自由软件基金会发布的GNU自由文档许可证第1.3版的条款进行许可。Qt及其相应标志是芬兰的Qt公司及其全球子公司和分公司的商标。所有其他商标均为各自所有者的财产。