创建堆叠条形图
注意:这是 Widgets 图库示例 的一部分。
堆叠条形图以条形的形式叠加显示数据集。叠加按类别进行。示例演示了如何创建一个简单的堆叠条形图。堆叠条形图以堆叠形式显示数据集,叠加按类别进行。创建堆叠条形图就像创建常规 条形图,只是对于堆叠条形图,我们使用 QStackedBarSeries API 而不是 QBarSeries。
在所有条形图中,都使用同样的方式使用条形集。为了说明各种条形图之间的区别,我们在所有示例中使用了相同的数据。可视化条形图的数据由 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;
我们创建序列并将条形集附加到它上。序列负责条形集。序列将来自集合的数据分组到类别中。每个集合的第一个值被组合在第一个类别中,第二个值在第二个类别中等。
auto series = new QStackedBarSeries; 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 Stacked 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; 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 公司及/或全球其他国家的商标。所有其他商标均为其各自所有者的财产。