Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QCustomPlot:如何更新图形的数据?_C++_Qt_Qcustomplot - Fatal编程技术网

C++ QCustomPlot:如何更新图形的数据?

C++ QCustomPlot:如何更新图形的数据?,c++,qt,qcustomplot,C++,Qt,Qcustomplot,我使用QCustomPlot显示图片的直方图。 我用于设置a曲线的函数如下所示: void SingleHistogram::setHist(const QVector<double> &x, const QVector<double> &y) { //clearGraphs(); graph(0)->setData(x, y); graph(0)->resca

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

void SingleHistogram::setHist(const QVector<double> &x,
                              const QVector<double> &y)
{
    //clearGraphs();
    graph(0)->setData(x, y);
    graph(0)->rescaleAxes(true);
    replot();
}
void SingleHistogram::setHist(const QVector&x,
常数(矢量和y)
{
//clearGraphs();
图(0)->设置数据(x,y);
图(0)->重新缩放轴(真);
replot();
}
对于我打开的第一张图片,它非常有效:

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

如您所见,第二条曲线(峰值)已添加到图形中

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

有人能告诉我我做错了什么吗


谢谢

只是出于好奇,你在清除向量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);

实际上,我发现我在图表中提供的输入数据包含两组值。 所以每个x坐标有2个y值


有趣的是,在这种情况下,QCustom plot将生成这种图形

失败:
错误:“类QCPGraph”没有名为“replot”的成员:(!可能是您应该添加一个类似于
clearValues()
的函数。它也不起作用。我的输入数据已“损坏”!