2016-10-09 9 views
2

Вот некоторые примеры точек:Как построить несколько точек с помощью QCustomPlot QT5?

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

Я хочу, чтобы построить эти точки линией, в свою очередь, я добавил их в вектор x и y. Затем выполняли setData(x,y).
Тем не менее, QCustomPlot кажется, может только нарисовать точки порядка x оси. Я заметил, что очки были отсортированы автоматически setData(x,y).

Как это сделать, чтобы построить эти точки по оригинальному заказу?

ответ

0

Что вы ищете, это использовать 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.

+0

Большое спасибо. Это действительно помогает! – wuhanmoon

+0

@wuhanmoon Если этот ответ решил ваш вопрос, пожалуйста, рассмотрите [его принятие] (http://meta.stackexchange.com/q/5234/179419), щелкнув по нему знак * V *. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. –

0

Основываясь на помощи А. Сарида, я нашел использование QCPCurve в демонстрационных версиях (11). Разница между QCPCurve и QCPGraph заключается в том, что один x может соответствовать разным y с QCPCurve. Итак, просто добавьте код:

QCPCurve * newCurve = new QCPCurve (ui-> customPlot-> xAxis, ui-> customPlot-> yAxis); новыйCurve-> setData (x, y);

Спасибо A. Sarid снова!

Смежные вопросы