使用多个坐标轴

注意:这是 Charts with Widgets Gallery 示例的一部分。

创建 QChart 实例,隐藏图表的图例,并设置其标题。

auto chart = new QChart;
chart->legend()->hide();
chart->setTitle("Multiple Vertical Axes in Chart");

创建一个 QValueAxis 实例,它将被用作序列的水平轴,并将其添加到图表的底部。这个轴可以被多个序列共享,但每个序列只能有一个垂直和水平轴。

auto axisX = new QValueAxis;
axisX->setTickCount(10);
chart->addAxis(axisX, Qt::AlignBottom);

创建第一个序列,并将其数据添加到其中。最后,将序列添加到图表中。为其创建自己的 Y 轴,将其添加到图表中。然后将共同的 X 轴和序列特定的 Y 轴附加到图表。在这个例子中,轴线的颜色被设置为与序列的颜色相同,以便区分哪个轴连接到哪个序列。

auto series = new QSplineSeries;
*series << QPointF(1, 5) << QPointF(3.5, 18) << QPointF(4.8, 7.5) << QPointF(10, 2.5);
chart->addSeries(series);

auto axisY = new QValueAxis;
axisY->setLinePenColor(series->pen().color());

chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisX);
series->attachAxis(axisY);

以类似的方式准备另一个序列。这次使用了一个不同的轴类型。此外,栅格线的颜色也被设置为与序列的颜色相同。

series = new QSplineSeries;
*series << QPointF(1, 0.5) << QPointF(1.5, 4.5) << QPointF(2.4, 2.5) << QPointF(4.3, 12.5)
        << QPointF(5.2, 3.5) << QPointF(7.4, 16.5) << QPointF(8.3, 7.5) << QPointF(10, 17);
chart->addSeries(series);

auto axisY3 = new QCategoryAxis;
axisY3->append("Low", 5);
axisY3->append("Medium", 12);
axisY3->append("High", 17);
axisY3->setLinePenColor(series->pen().color());
axisY3->setGridLinePen((series->pen()));

chart->addAxis(axisY3, Qt::AlignRight);
series->attachAxis(axisX);
series->attachAxis(axisY3);

使用 QChart 作为参数创建一个 QChartView 对象。

createDefaultChartView(chart);

© 2024 Qt 公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可第 1.3 版许可的。Qt 和相应商标是芬兰和/或世界其他地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。