以下是一些示例点:
(1,1),(2,3),(3,1),(4,2),(1,5),(3,4)
我想用一条线依次绘制这些点,我已将它们添加到向量x
和y
. 然后,setData(x,y)
进行了。
但是,QCustomPlot
似乎只能按x
轴的顺序绘制点。我注意到这些点是由setData(x,y)
.
如何按原始顺序绘制这些点?
以下是一些示例点:
(1,1),(2,3),(3,1),(4,2),(1,5),(3,4)
我想用一条线依次绘制这些点,我已将它们添加到向量x
和y
. 然后,setData(x,y)
进行了。
但是,QCustomPlot
似乎只能按x
轴的顺序绘制点。我注意到这些点是由setData(x,y)
.
如何按原始顺序绘制这些点?
您正在寻找的是使用QCPCurve
而不是 Graph。
定义:
QCPCurve *newCurve;
并通过以下方式启动它:
this->newCurve = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis);
ui->customPlot->addPlottable(this->newCurve);
然后您可以像使用 Graph 一样使用它:
QVector<double> x, y;
//...
this->newCurve->setData(x, y);
另请参阅此示例:参数曲线演示。
根据 A. Sarid 的帮助,我在 demos(11) 中找到了 QCPCurve 的用法。QCPCurve 和 QCPGraph 的区别在于,一个 x 可以用 QCPCurve 对应不同的 y。所以,只需添加代码:
QCPCurve *newCurve = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis); 新曲线->setData(x,y);
再次感谢 A. Sarid!