##// END OF EJS Templates
Minor update in project gse_lesia
Minor update in project gse_lesia

File last commit:

r69:d8815b251eb0 default
r72:27e89cd58c8b default
Show More
lfrspectrogram.cpp
66 lines | 1.8 KiB | text/x-c | CppLexer
#include "lfrspectrogram.h"
class SpectrogramData: public QwtRasterData
{
public:
SpectrogramData():
QwtRasterData(QwtDoubleRect(-1.5, -1.5, 3.0, 3.0))
{
}
virtual QwtRasterData *copy() const
{
return new SpectrogramData();
}
virtual QwtDoubleInterval range() const
{
return QwtDoubleInterval(0.0, 10.0);
}
virtual double value(double x, double y) const
{
const double c = 0.842;
const double v1 = x * x + (y-c) * (y+c);
const double v2 = x * (y+c) + x * (y+c);
return 1.0 / (v1 * v1 + v2 * v2);
}
};
LFRSpectrogram::LFRSpectrogram(QWidget *parent) :
QWidget(parent)
{
mainLayout = new QVBoxLayout();
plot_spectrogram = new QwtPlot();
spectrogram = new QwtPlotSpectrogram(tr("spectrogram"));
QwtLinearColorMap colorMap(Qt::darkCyan, Qt::red);
colorMap.addColorStop(0.1, Qt::cyan);
colorMap.addColorStop(0.6, Qt::green);
colorMap.addColorStop(0.95, Qt::yellow);
spectrogram->setColorMap(colorMap);
spectrogram->setData( SpectrogramData() );
spectrogram->attach(plot_spectrogram);
// A color bar on the right axis
QwtScaleWidget *rightAxis = plot_spectrogram->axisWidget(QwtPlot::yRight);
rightAxis->setTitle("Intensity");
rightAxis->setColorBarEnabled(true);
rightAxis->setColorMap(spectrogram->data().range(),
spectrogram->colorMap());
plot_spectrogram->setAxisScale(QwtPlot::yRight,
spectrogram->data().range().minValue(),
spectrogram->data().range().maxValue() );
plot_spectrogram->enableAxis(QwtPlot::yRight);
plot_spectrogram->plotLayout()->setAlignCanvasToScales(true);
plot_spectrogram->replot();
mainLayout->addWidget(plot_spectrogram);
this->setLayout(mainLayout);
}