Могу ли я отобразить интервал оси Z графика QWT на левой стороне?

У меня есть цветной дисплей водопада, реализованный как QwtPlot с контейнером данных, полученным из QwtRasterData (m_SpectroPlot ниже). Окрашенные значения соответствуют оси Z данных, взятых из цветовой карты, которая показана с правой стороны графика. Код выглядит так:

const QwtInterval zInterval = m_SpectroPlot->data()->interval( Qt::ZAxis );
QwtScaleWidget *zAxis = axisWidget(QwtPlot::yRight);
zAxis->setColorBarEnabled(true);
zAxis->setColorMap( zInterval, new ColorMap());
setAxisScale(QwtPlot::yRight, zInterval.minValue(), zInterval.maxValue() );
setAxisAutoScale(QwtPlot::yRight);
enableAxis(QwtPlot::yRight);

Все работает нормально, но я хочу иметь цветную карту слева и скрыть значения оси Y. Когда я заменяю yRight на yLeft в приведенном выше коде, отображаемый интервал цветовой карты привязывается к интервалу значений Y данных. Как сохранить текущие независимые интервалы осей при отображении карты цветов на оси yLeft?

Другими словами, я хочу отобразить карту цветов для интервала Z0-Z1 на оси yLeft, в то время как фактические значения Y, отображаемые на графике, равны Y0-Y1. Кажется, мне нужно как-то сказать графику использовать yRight вместо yLeft для масштабирования оси Y.

1 ответ

Решение

Просеяв какую-то документацию, я нашел ответ. Необходимо указать данные для присоединения к оси yRight вместо значения yLeft по умолчанию.

m_SpectroPlot->setYAxis(QwtPlot::yRight);
Другие вопросы по тегам