1

QwtPlotSpectrogramとカスタムQwtRasterDataを使用して、さまざまな値の2Dデータをプロットしています。線形ではなく対数のカラースケールを使用してプロットしたいと思います。これを行う簡単な方法はありますか?

私の代替手段は、QwtRasterDataが値を計算するときにlog(value(x、y))をフィードすることです。ただし、カラーバーには、必要な絶対値ではなく、ログの値が表示されます-そこに何か提案はありますか?

ありがとう!

4

1 に答える 1

2

これがまだ誰にとっても興味深い場合:

私は同じ問題を抱えていて、次の簡単なクラスを書きました。

class LogarithmicColorMap : public QwtLinearColorMap
{
public:
    LogarithmicColorMap(const QColor &from, const QColor &to)
        : QwtLinearColorMap(from, to)
    {
    }

    QRgb rgb(const QwtInterval &interval, double value) const
    {
        return QwtLinearColorMap::rgb(QwtInterval(std::log(interval.minValue()),
                                                  std::log(interval.maxValue())),
                                      std::log(value));
    }
};

また、カラーバーには次のようなものを使用できます。

setAxisScaleEngine(QwtPlot::yRight, new QwtLog10ScaleEngine())
于 2012-01-26T16:47:59.610 に答える