QCustomPlot:如何更新图表的数据?
QCustomPlot: How to update data of a graph?
我用QCustomPlot来显示图片的直方图。
我用来设置曲线的函数如下:
void SingleHistogram::setHist(const QVector<double> &x,
const QVector<double> &y)
{
//clearGraphs();
graph(0)->setData(x, y);
graph(0)->rescaleAxes(true);
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);
实际上,我发现我提供的图形输入数据包含2组值。
所以每个 x 坐标有 2 个 y 值。
有趣的是,QCustom plot 在这种情况下会生成这种图形!
我用QCustomPlot来显示图片的直方图。 我用来设置曲线的函数如下:
void SingleHistogram::setHist(const QVector<double> &x,
const QVector<double> &y)
{
//clearGraphs();
graph(0)->setData(x, y);
graph(0)->rescaleAxes(true);
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);
实际上,我发现我提供的图形输入数据包含2组值。 所以每个 x 坐标有 2 个 y 值。
有趣的是,QCustom plot 在这种情况下会生成这种图形!