如何使图表不在特定范围内绘制折线图?
How to make QtChart do not draw line chart at certaing ranges?
下面的代码画了一条从2020年到2023年的线,穿过2022年。关键是,如何让QChartView忽略2022年,即从2021年直接画到2023年,或者换句话说, 从 X 轴移除 2022?
auto series = new QLineSeries();
series->append(QDateTime(QDate(2020, 1, 1)), 100);
series->append(QDateTime(QDate(2021, 1, 1)), 200);
series->append(QDateTime(QDate(2023, 1, 1)), 300);
series->append(QDateTime(QDate(2023, 1, 1)), 200);
QDateTimeAxis *axisX = new QDateTimeAxis;
axisX->setTickCount(20);
axisX->setLabelsAngle(-90);
axisX->setFormat("dd.MM.yyyy hh:mm:ss");
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
QValueAxis *axisY = new QValueAxis;
axisY->setTickCount(30);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);
chart->setTitle(m_stock->name());
m_chart_view->setChart(chart);
终于找到解决办法了。应该使用 QBarCategoryAxis 而不是 QDateTimeAxis。
下面的代码画了一条从2020年到2023年的线,穿过2022年。关键是,如何让QChartView忽略2022年,即从2021年直接画到2023年,或者换句话说, 从 X 轴移除 2022?
auto series = new QLineSeries();
series->append(QDateTime(QDate(2020, 1, 1)), 100);
series->append(QDateTime(QDate(2021, 1, 1)), 200);
series->append(QDateTime(QDate(2023, 1, 1)), 300);
series->append(QDateTime(QDate(2023, 1, 1)), 200);
QDateTimeAxis *axisX = new QDateTimeAxis;
axisX->setTickCount(20);
axisX->setLabelsAngle(-90);
axisX->setFormat("dd.MM.yyyy hh:mm:ss");
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
QValueAxis *axisY = new QValueAxis;
axisY->setTickCount(30);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);
chart->setTitle(m_stock->name());
m_chart_view->setChart(chart);
终于找到解决办法了。应该使用 QBarCategoryAxis 而不是 QDateTimeAxis。