0
我正在使用QwtPlotSpectrogram與自定義的QwtRasterData來繪製具有廣泛變化的值的2D數據。我想用對數色標來代替線性色標。有沒有簡單的方法來做到這一點?QwtPlotSpectrogram:使用對數色階?
我的替代方法是在QwtRasterData計算值時提供日誌(值(x,y))。然而,那麼我的顏色欄將顯示日誌中的值,而不是我想要的絕對值 - 有什麼建議嗎?
謝謝!
我正在使用QwtPlotSpectrogram與自定義的QwtRasterData來繪製具有廣泛變化的值的2D數據。我想用對數色標來代替線性色標。有沒有簡單的方法來做到這一點?QwtPlotSpectrogram:使用對數色階?
我的替代方法是在QwtRasterData計算值時提供日誌(值(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())