Search code examples
qtqtcharts

How to make QtChart do not draw line chart at certaing ranges?


The code below draws line from year 2020 to 2023 that passes through the year 2022. The point is, how to make QChartView to ignore the year 2022, i.e. draw line from 2021 immediately to 2023, or saying in another words, remove 2022 from X axis?

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);

Solution

  • Finally solution is found. Should use QBarCategoryAxis instead of QDateTimeAxis.