I have a similar problem. I am using QCustomplot in my GUI and want to constantly change x-range and y-range. But x-range and y-range stays at initial setting. Here is my code.
void MainWindow::PlotDataRWAmp(double *data, double minX, double maxX, double minY, double maxY, double minAmp, double maxAmp)
{
int count;
mPlot1 = new QCustomPlot();
mPlot1 = ui->plotRWAmp;
mColorMap1 = new QCPColorMap(mPlot1->xAxis, mPlot1->yAxis);
mColorMap1->rescaleDataRange(true);
mColorMap1->data()->setRange(QCPRange(minX, maxX), QCPRange(minY, maxY));
mColorMap1->data()->setSize(mLength, mWidth);
mColorMap1->setInterpolate(0);
for (int x=0; x<mLength; x++)
for (int y=0; y<mWidth; y++)
{
count = y + mWidth * x;
mColorMap1->data()->setCell(x,y, data[count]);
}
mPlot1->addPlottable(mColorMap1);
mPlot1->axisRect()->setupFullAxesBox(true);
mPlot1->xAxis->setLabel("X (μm)");
mPlot1->yAxis->setLabel("Y (μm)");
if (mPlotFlag)
mPlot1->plotLayout()->remove(mColorScale1);
mColorScale1 = new QCPColorScale(mPlot1);
mPlot1->plotLayout()->addElement(0, 1, mColorScale1);
mColorMap1->setColorScale(mColorScale1);
QCPColorGradient *mGradient = new QCPColorGradient();
mColorMap1->setGradient(mGradient->gpSpectrum);
mGradient->setLevelCount(10);
mColorMap1->setDataRange(QCPRange(minAmp, maxAmp));
mMarginGroup = new QCPMarginGroup(mPlot1);
mPlot1->axisRect()->setMarginGroup(QCP::msBottom|QCP::msTop, mMarginGroup);
mColorScale1->setMarginGroup(QCP::msBottom|QCP::msTop, mMarginGroup);
mPlot1->rescaleAxes();
mPlot1->replot();
}