2011-10-12 4 views
0

커스텀 QwtRasterData와 함께 QwtPlotSpectrogram을 사용하여 매우 다양한 값으로 2D 데이터를 플롯합니다. 선형 대수 대신 대수 색 스케일을 사용하여 플롯하려고합니다. 이 작업을 수행하는 간단한 방법이 있습니까?QwtPlotSpectrogram : 대수 색 스케일 사용?

내 대안은 QwtRasterData가 값을 계산할 때 log (value (x, y))를 피드하는 것입니다. 그러나 내 색상 막대는 로그에 값을 표시합니다. 절대 값은 내가 원하는 것입니다. - 거기에 어떤 제안이 있습니까?

감사합니다. 이 사람이 여전히 흥미 롭다 경우

답변

1

:

나는 같은 문제를 가지고 다음과 같은 간단한 클래스 썼다 :

:

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())