以下是一些示例点:

(1,1),(2,3),(3,1),(4,2),(1,5),(3,4)

我想依次画出这些点,将它们添加到 vector xy中。然后,执行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);

另请参见以下示例:Parametric Curves Demo

10-04 21:56