QCustomPlot:如何更新图表数据?

时间:2016-04-02 22:33:14

标签: c++ qt qcustomplot

我使用QCustomPlot显示图片的直方图。 我用来设置曲线的函数如下:

void SingleHistogram::setHist(const QVector<double> &x,
                              const QVector<double> &y)
{
    //clearGraphs();
    graph(0)->setData(x, y);
    graph(0)->rescaleAxes(true);
    replot();
}

它对我打开的第一张照片非常有用:

enter image description here

但是当我使用相同的函数设置新的直方图时,第一条曲线不会被移除(即使setData()调用图的clearData()方法):

enter image description here

如您所见,第二条曲线(峰值)被添加到图表中。

我不想删除和重建新的QCPGraph以提高效率,因为我觉得它没用。

有人可以告诉我这里的错误吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

出于好奇,你要清除你的向量x,y吗?如果没有,你应该在加载新图表之前清除它们。

代码看起来有点像

// Graph 1    
setHist(x,y);  // set graph

//
// ..Some code
//

//before loading new values
x.clear();
y.clear();

// Graph 2 
// Fill up new values
// x=[],y=[]

// set NEW graph
setHist(x,y);