2016-04-21 8 views
2

Verwenden der QCustomPlot-Erweiterung für QT. Ich habe Punkte zu zeichnen, die so nicht linear kann der Graph so etwas wie dieses enter image description hereQCustomPlot füllt Linien aus, die eine Verbindung herstellen

aussehen könnte, wie immer dies das Ergebnis

enter image description here

ist, aber das ist, was oben zeigt

mit Dieser Code

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(); 

jetzt habe ich eine teilweise Lösung gefunden, indem Sie diese Option hinzufügen, um Fahrt der angeschlossenen Linie zu bekommen s und nur die Punkte zeigen,

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

und das Ergebnis ist dies aber ein Problem hat, ist es ein bisschen fett Stelle verlässt, die ich nicht

enter image description here

so ist dies ein halb haben -Lösung. Also ging ich weiter und fügte hinzu, was A. Sarid in den Antworten unten erwähnt hat. Ich denke, der erste Graph fein zeichnen kann, aber jede andere grafische Darstellung nach sieht es so

enter image description here

so bin ich nicht sicher, welche Lösung nur die Punkte in der Reihenfolge anschließen machen, in dem sie von dem empfangenen Array

Antwort

2

Ich hatte gerade das gleiche Problem vor ein paar Tagen. Sie müssen QCPCurve Class anstelle von Graph verwenden. Hier ist ein kleines Beispiel dafür, wie es zu tun:

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

Und dann kann man es auf die gleiche Weise Graph verwenden, zum Beispiel:

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

nicht funktioniert, werden die Daten sehr seltsam herauskommen , es fügt so viele zusätzliche Zeilen hinzu und sieht so aus, als ob es auch doppelte Werte produziert, nicht sicher, warum –

+0

@Tanner es hilfreich sein wird, wenn Sie relevante Teile aus Ihrem Code hinzufügen und etwas Hintergrund von dem geben, was Sie zu plotten versuchen. –

+0

Ich weiß Entschuldigung Ich war im Begriff, meinen Kommentar zu bearbeiten, ok, so dass mein Programm mehrere Dateien liest und plottet. Wenn Sie das tun, was Sie gesagt haben, bin ich nicht sicher, ob das Plotten von vorherigen Graphen ausgeht, da es nicht seit dem Zurücksetzen der Daten pro Methodenaufruf geschehen soll, genauso habe ich es mit dem qcustomplot-Objekt gemacht. Wie auch immer du tust, was du gesagt hast, das alles nach dem ersten Graph sieht wie folgt aus http://imgur.com/NUGEMq6 und ich versuche, etwas wie dieses zu zeichnen http://imgur.com/6FAbv7L basierend auf den Punkten, werde ich updaten Original-Beitrag jetzt –

Verwandte Themen