QwtPlotSpectrogramとカスタムQwtRasterDataを使用して、さまざまな値の2Dデータをプロットしています。線形ではなく対数のカラースケールを使用してプロットしたいと思います。これを行う簡単な方法はありますか?
私の代替手段は、QwtRasterDataが値を計算するときにlog(value(x、y))をフィードすることです。ただし、カラーバーには、必要な絶対値ではなく、ログの値が表示されます-そこに何か提案はありますか?
ありがとう!
これがまだ誰にとっても興味深い場合:
私は同じ問題を抱えていて、次の簡単なクラスを書きました。
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())