2016-04-21 4 views
2

Использование QCustomPlot для QT. Я имею построить точки, которые могут не линейные, так что график может выглядеть как этот enter image description hereQCustomPlot заполняет строки, которые соединяют

как всегда это результат

enter image description here

, но это то, что проявляется

с использованием этот код

plotter->addGraph(); 
    plotter->graph(0)->setData(xVector, yVector); 
    plotter->xAxis->setLabel("X"); 
    plotter->yAxis->setLabel("Y"); 
    plotter->xAxis->setRange(x_data_range_min x_data_range_max); 
    plotter->yAxis->setRange(y_data_range_min, y_data_range_max); 
    plotter->replot(); 
    plotter->saveJpg("test.jpg"); 
    plotter->close(); 

сейчас я нашел частичное исправление, добавив эту опцию, чтобы получить доступ к подключенной линии s и только показывают точки,

plotter->graph(0)->setLineStyle((QCPGraph::LineStyle)QCPGraph::lsNone); 
    plotter->graph()->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssDisc , 3)); 

и результат этого, но есть проблема, она оставляет своего родом смелого пятна, которое я не могу иметь

enter image description here

так это пол -решение. Поэтому я пошел дальше и добавил, что сказал А. Сарид в ответах ниже. Я думаю, что первый граф может построить хорошо, но и любой другой график, после того, как он выглядит, как это

enter image description here

, так что я не уверен, какое решение может сделать только точки подключения в том порядке, в котором они были получены от массив

ответ

2

У меня была такая же проблема несколько дней назад. Вместо Графа вам нужно использовать QCPCurve Class. Вот небольшой пример того, как это сделать:

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

И тогда вы можете использовать его так же, как вы используете график, например:

this->newCurve->setData(x, y); 
+0

не работает, данные выходит очень странно , он добавляет столько лишних строк и выглядит так же, как и двойные значения, не уверен, почему –

+0

@Tanner будет полезно, если вы добавите соответствующие части из своего кода и расскажите о том, что вы пытаетесь построить. –

+0

Мне очень жаль, что я собирался отредактировать свой комментарий, так что моя программа читает в нескольких файлах и заносит их в закладки. Выполняя то, что вы сказали, я не уверен, что его точки графика из предыдущих графиков с тех пор, как это не должно произойти, поскольку данные сбрасываются на вызов метода, это также то, как я делал это только с объектом qcustomplot. в любом случае, делая то, что вы сказали, все после первого графика выглядит так: http://imgur.com/NUGEMq6, и я пытаюсь сделать что-то вроде этого http://imgur.com/6FAbv7L, основанного на точках, я обновлю оригинальное сообщение прямо сейчас –

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