Hello,

I have some questions concerning spectrogram :

* How can I enable color interpolation like Qcp (Qcp : spectro_qcp.jpg same data shown in Qwt : spectro_qwt.jpg)
Should I change the color map ? I'm using this one :

Qt Code:
  1. LinearColorMapRGB::LinearColorMapRGB() :
  2. QwtLinearColorMap(Qt::darkBlue, Qt::darkRed, QwtColorMap::RGB)
  3. {
  4. addColorStop(0.2, Qt::blue);
  5. addColorStop(0.4, Qt::cyan);
  6. addColorStop(0.6, Qt::yellow);
  7. addColorStop(0.8, Qt::red);
  8. }
To copy to clipboard, switch view to plain text mode 
However in Qcp, I'm setting a "gradient" called "gpJet" (gradient = HSV ?)

* Is the number of colors limited to 256 ? is it possible to change it (increase it / decrease it) ?
(e.g. in VTK the number of colors in the discretizable look-up table can be changed.)

* When I rescale Z (spectrogram data), the color bar enabled on the Y right axis is changing, I don't want that. So I'm obliged to assign a new LinearColorMapRGB each time I rescale Z data range.

Qt Code:
  1. m_pChart->setAxisScale(QwtPlot::yRight, dLower, dUpper);
  2.  
  3. QwtScaleWidget* axis = m_pChart->axisWidget(QwtPlot::yRight);
  4. if (axis->isColorBarEnabled())
  5. {
  6. // Need a proper method to get a reference to the QwtInterval
  7. // instead of resetting a new color map to the axis !
  8. axis->setColorMap(QwtInterval(dLower, dUpper), new LinearColorMapRGB());
  9. }
To copy to clipboard, switch view to plain text mode 

Is there a clean way ?

* I have a curve and a spectrogram plot arranged in a vertical layout, I used the code in the "plotmatrix" example to keep the vertical axis aligned and the Xaxis ranges the same.
When I zoom out so that we can not see the plots, the spectrogram crashes.Below, the callstack of the crash :

Thread 14 (Thread 0x7fff9f7fe700 (LWP 30601)):
#0 0x00007fffea763a38 in QwtMatrixRasterData::value(double, double) const (col=0, row=127, this=0xdd0b50) at ../../src/qwt_matrix_raster_data.cpp:25
row = 127
col = 0
xInterval = {d_minValue = 0, d_maxValue = 500, d_borderFlags = {i = 2}}
yInterval = {d_minValue = 9750, d_maxValue = 10750, d_borderFlags = {i = 2}}
#1 0x00007fffea763a38 in QwtMatrixRasterData::value(double, double) const (this=0xa25700, x=<optimized out>, y=<optimized out>) at ../../src/qwt_matrix_raster_data.cpp:274
row = 127
col = 0
xInterval = {d_minValue = 0, d_maxValue = 500, d_borderFlags = {i = 2}}
yInterval = {d_minValue = 9750, d_maxValue = 10750, d_borderFlags = {i = 2}}
#2 0x00007fffea73f79c in QwtPlotSpectrogram::renderTile(QwtScaleMap const&, QwtScaleMap const&, QRect const&, QImage*) const (this=0xd92830, xMap=..., yMap=..., tile=..., image=0x7fffffffac00) at ../../src/qwt_plot_spectrogram.cpp:508
tx = <optimized out>
x = 0
ty = 10746.09375
line = 0xe6a824
y = 0
range = {d_minValue = -0.021730000153183937, d_maxValue = 1.2283560037612915, d_borderFlags = {i = 0}}
#3 0x00007fffea7412eb in QtConcurrent::RunFunctionTask<void>::run() (this=0xe6aa30) at /usr/include/qt5/QtConcurrent/qtconcurrentrunbase.h:136
#4 0x00007fffdd5a9d0e in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#5 0x00007fffdd5acb71 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#6 0x00007fffe802be25 in start_thread () at /lib64/libpthread.so.0
#7 0x00007fffdcd1d34d in clone () at /lib64/libc.so.6
Thanks.