Приветствую, обнаружил странное поведение QChart'а, не понимаю, что я делаю не так.
Хочу сделать график, у которого будут отображаться на оси ключевые значения, решил использовать для этого QCategoryAxis
QChart* side_glissade_chart = new QChart;
QLineSeries* side_glissade_top_line = new QLineSeries;
side_glissade_top_line->append(0, faf_alt + dh_faf_plus);
side_glissade_top_line->append(1000 + m_IfDist, faf_alt + dh_faf_plus);
side_glissade_top_line->append(1000 + m_IfDist + faf_map_dist, map_alt + dh_map_plus);
side_glissade_top_line->append(1000 + m_IfDist + m_FafDist, m_TdpDH);
side_glissade_chart->addSeries(side_glissade_top_line);
QLineSeries* side_glissade_center_line = new QLineSeries;
side_glissade_center_line->append(0, faf_alt);
side_glissade_center_line->append(1000 + m_IfDist, faf_alt);
side_glissade_center_line->append(1000 + m_IfDist + faf_map_dist, map_alt);
side_glissade_center_line->append(1000 + m_IfDist + m_FafDist, 0);
side_glissade_chart->addSeries(side_glissade_center_line);
QLineSeries* side_glissade_bottom_line = new QLineSeries;
side_glissade_bottom_line->append(0, faf_alt - dh_faf_minus);
side_glissade_bottom_line->append(1000 + m_IfDist, faf_alt - dh_faf_minus);
side_glissade_bottom_line->append(1000 + m_IfDist + faf_map_dist, map_alt - dh_map_minus);
side_glissade_bottom_line->append(1000 + m_IfDist + m_FafDist, -m_TdpDH);
side_glissade_chart->addSeries(side_glissade_bottom_line);
QLineSeries* side_glissade_decision_line = new QLineSeries;
side_glissade_top_line->append(0, m_DecicionHeight);
side_glissade_top_line->append(1000 + m_IfDist + m_FafDist, m_DecisionHeight);
side_glissade_chart->addSeries(side_glissade_decision_line);
side_glissade_chart->createDefaultAxes();
QCategoryAxis* side_glissade_y_axis = new QCategoryAxis;
side_glissade_y_axis->setLabelsPosition(QCategoryAxis::AxisLabelsPositionOnValue);
side_glissade_y_axis->append(tr("VPR (%1)").arg(m_DecicionHeight), m_DecicionHeight);
side_glissade_y_axis->append(tr("H MAP (%1)").arg(map_alt), map_alt);
side_glissade_y_axis->append(tr("dH FAF- (%1)").arg(faf_alt - dh_faf_minus), faf_alt - dh_faf_minus);
side_glissade_y_axis->append(tr("H FAF (%1)").arg(faf_alt), faf_alt);
side_glissade_y_axis->append(tr("dH FAF+ (%1)").arg(faf_alt + dh_faf_plus), faf_alt + dh_faf_plus);
side_glissade_y_axis->setRange(-m_DecicionHeight, faf_alt + dh_faf_plus);
side_glissade_chart->setAxisY(side_glissade_y_axis);
ui->sideGlissadeView->setChart(side_glissade_chart);
В целом всё неплохо, но хочу добавить пространства сверху (1.png)
Если я пытаюсь просто сделать
side_glissade_y_axis->setRange(-m_DecicionHeight, (faf_alt + dh_faf_plus)*1.2);
то по оси запас появляются, но на графики это не влияет (2.png)
Если же я убираю createDefaultAxes(), то масштаб выходит какой-то совсем странный (3.png)
Вопрос, что я делаю не так и как правильно работать с осями категорий чтобы данные на графике масштабировались вместе с ними?