0

QwtRasterData (m_SpectroPlot以下) から派生したデータ コンテナーを使用して、QwtPlot として実装された色付きのウォーターフォール ディスプレイがあります。描画された値は、プロットの右側に表示されているカラー マップから取得した、データの 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 軸にカラー マップを表示しながら、現在の独立した軸間隔を維持するにはどうすればよいですか?

つまり、プロットに描画される実際の Y 値は Y0-Y1 ですが、間隔 Z0-Z1 のカラー マップを yLeft 軸に表示したいと考えています。Y軸をスケーリングするには、yLeftの代わりにyRightを使用するようにプロットに指示する必要があるようです。

4

1 に答える 1

2

いくつかのドキュメントをふるいにかけた後、答えを見つけました。データは、デフォルトの yLeft 軸ではなく yRight 軸にアタッチするように指示する必要があります。

m_SpectroPlot->setYAxis(QwtPlot::yRight);
于 2013-02-18T23:01:10.030 に答える