2016-04-21 35 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

所以這是一個半一個有點大膽點-解。所以我繼續添加A.Sarid在下面的回覆中提到的內容。我認爲第一張圖可以繪製精細,但任何其他圖形看起來後,像這樣

enter image description here

所以我不知道該解決方案可以使只有點在其從接收的順序連接陣列

回答

2

我剛剛在幾天前有同樣的問題。 您需要使用QCPCurve Class而不是Graph。這裏是如何做到這一點的一個小例子:

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基於點,我會更新原始帖子現在 –