如何使用QCustomPlot QT5绘制多个点?

时间:2016-10-09 13:34:14

标签: c++ qt plot qcustomplot

以下是一些示例点:

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

我想依次用一条线绘制这些点,我已将它们添加到向量xy中。然后,执行了setData(x,y) 但是,QCustomPlot似乎只能按x轴的顺序绘制点。 我注意到这些点是由setData(x,y)自动排序的。

如何按原始顺序绘制这些点?

2 个答案:

答案 0 :(得分:0)

您正在寻找的是使用QCPCurve而非图表。

定义:

QCPCurve *newCurve;

通过以下方式启动它:

this->newCurve = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis);
ui->customPlot->addPlottable(this->newCurve);

然后您可以像使用图表一样使用它:

QVector<double> x, y;
//...
this->newCurve->setData(x, y);

另请参见此示例:Parametric Curves Demo

答案 1 :(得分:0)

根据A. Sarid的帮助,我在演示中找到了QCPCurve的用法(11)。 QCPCurve和QCPGraph之间的区别在于,一个x可以与QCPCurve对应不同的y。 所以,只需添加代码:

QCPCurve * newCurve = new QCPCurve(ui - &gt; customPlot-&gt; xAxis,ui-&gt; customPlot-&gt; yAxis); newCurve-&GT;使用setData(X,Y);

再次感谢A. Sarid!