/ / Dynamisches Plotten in Gnuplot (Drawnnow in MATLAB) - Matlab, Plot, Common-Lisp, Gnuplot, Oktave

Dynamisches Plotten in Gnuplot (Drawnow in MATLAB) - Matlab, Plot, Common-Lisp, Gnuplot, Oktave

Ist es möglich, dynamische Plots in Gnuplot zu erstellen? Was ich für meine Zwecke benötige, ist, dass, während die Daten durch eine Schleife erzeugt werden, ich gnuplot verwenden werde, um einige Marker auf der x-y Achse zu setzen, wobei die älteren beibehalten werden. So kann ich die Entwicklung der Daten beobachten, anstatt nur das endgültige Ergebnis zu sehen.

Was ich speziell möchte, entspricht dem Befehl "drawnow" in MATLAB.

Obwohl nicht vollständig verwandt, gerade jetzt bin ichVerwenden von common lisp zum Generieren der Daten in einer Schleife und cgn, um in Lisp mit gnuplot zu plotten. (Ich kann Daten in Batch-Form im allgemeinen Lisp mit cgn plotten, die gnuplot verwendet)

Vielen Dank im Voraus für Ihre Aufmerksamkeit.

edit: Ich habe zu diesem Zweck einen Code in Lisp geschrieben. Sie können es hier überprüfen:
Plotten von Daten aus Emacs mit Common Lisp und Gnuplot
Dieser Thread ist jedoch allgemeiner und fragt das dynamische Plotten in gnuplot ab. Irgendwelche Vorschläge sind willkommen.

Antworten:

1 für die Antwort № 1

Leider ist es nicht einfach, einzelne Punkte in gnuplot zu plotten, aber glücklicherweise gibt es ein paar einfache Hacks, wie hier besprochen: Zeichnen eines einzelnen Punktes mit Gnuplot. Das Echo Die dort besprochene Methode wird jedoch nur in einer Unix-Umgebung funktionieren.

Verwenden Sie dies mit replot Anstatt von plot In Ihrem Programm sollten Sie hoffentlich ein Diagramm mit Punkten erstellen, die sich mit der Zeit entwickeln und die vorherigen Punkte erhalten.

Ein anderer Weg, den ich mit Python verwende, istdass ich die Datenpunkte in eine Datei lege. In jeder Iteration füge ich der Datei Punkte hinzu und zeichne sie dann erneut mit gnuplot. Es ist ein wenig hässlich, aber es macht den Job in den meisten Fällen.


0 für die Antwort № 2

Ich bin mir nicht sicher, ob ich vollständig verstehe, was du fragst, aber wenn du einen Plot zu der letzten Zeichenkette hinzufügen willst, die du gezeichnet hast (und du Gnuplot 4.4 verwendest), macht das Folgende den Trick:

gnuplot> plot sin(x),cos(x)  #plot sin and cos in an xterm window
gnuplot> eval GPVAL_LAST_PLOT."cos(x+pi/2.5)"  #add cos(x+pi/2.5) to the current plot

Wie auch immer, ich bin mir nicht sicher, ob das das ist, wonach du fragst, da ich Matlab nicht benutze, aber ich hoffe es ist.