Можно ли нарисовать метки осей в конце меток?
Смотрите картинку для деталей:
http://habrastorage.org/files/94f/41a/b18/94f41ab1897a4bde815644bf287b4af9.png
Если это возможно, то как?
vtkNew<vtkContextView> contextView;
vtkNew<vtkTable> table;
vtkNew<vtkChartXY> chart;
vtkNew<vtkDoubleArray> timeAxis;
vtkNew<vtkDoubleArray> realDataAxis;
vtkNew<vtkDoubleArray> measuredDataAxis;
// ...
contextView->SetInteractor(vtkWidget->GetInteractor());
vtkWidget->SetRenderWindow(contextView->GetRenderWindow());
timeAxis->SetName("t");
realDataAxis->SetName("x(t)");
measuredDataAxis->SetName("x*(t)");
table->AddColumn(timeAxis.Get());
table->AddColumn(realDataAxis.Get());
table->AddColumn(measuredDataAxis.Get());
chart->SetShowLegend(true);
auto legend = chart->GetLegend();
legend->GetLabelProperties()->SetFontSize(14);
legend->GetLabelProperties()->SetFontFamilyToTimes();
auto xAxis = chart->GetAxis(vtkAxis::BOTTOM);
xAxis->SetTitle(QApplication::translate("DataSetChartWidget", "t").toStdString());
auto xTitleProps = xAxis->GetTitleProperties();
xTitleProps->SetFontSize(14);
xTitleProps->SetFontFamilyToTimes();
auto xLabelProps = xAxis->GetLabelProperties();
xLabelProps->SetFontSize(14);
xLabelProps->SetFontFamilyToTimes();
auto yAxis = chart->GetAxis(vtkAxis::LEFT);
yAxis->SetTitle(QApplication::translate("DataSetChartWidget", "x(t), x*(t)").toStdString());
auto yTitleProps = yAxis->GetTitleProperties();
yTitleProps->SetFontSize(14);
yTitleProps->SetFontFamilyToTimes();
auto yLabelProps = yAxis->GetLabelProperties();
yLabelProps->SetFontSize(14);
yLabelProps->SetFontFamilyToTimes();
contextView->GetScene()->AddItem(chart.Get());
И код для построения:
auto realPlot = chart->AddPlot(vtkChart::LINE);
realPlot->SetInputData(table.Get(), 0, 1);
auto measuredPlot = chart->AddPlot(vtkChart::POINTS);
measuredPlot->SetInputData(table.Get(), 0, 2);
Вы можете установить вертикальное и горизонтальное выравнивание заголовка оси.
например
myVtkChart->GetAxis(0)->GetTitleProperties()->SetJustificationToLeft();
в вашем случае должно быть достаточно позвонить
xTitleProps->SetJustificationToRight();
yTitleProps->SetJustificationToLeft();
но кажется, что ширина заголовка не масштабируется до длины осей.
Это означает, что, вероятно, необходимо поместить несколько пробелов в строку заголовка, чтобы получить ожидаемый результат.