Frage zu Gnuplot: Automatischer Reload?

B

bluesaturn

Aktives Mitglied
Thread Starter
Dabei seit
01.05.2004
Beiträge
1.156
Reaktionspunkte
164
Hallo MacUser.
Vielleicht nutzt hier jemand Gnuplot. Ich erstelle immer meine Gnuplot-Graphiken als eps und öffne diese bisher in der Vorschau.
Leider muss ich jedesmal die Graphik wieder von Hand neu laden, um Veränderungen zu sehen.
Gibt es vielleicht ein Programm, das automatisch erkennt, wenn sich ein .eps geändert hat und dieses neu lädt?
Der replot-Befehl hilft mir, glaube ich, nicht.

Vielen Dank.
Gruß
b.
 
Also geht es dir eher darum, dass du eine Alternative zur Vorschau findest, die die Anzeige automatisch aktualisiert? Dann handelt es sich nicht um ein Problem mit gnuplot, sondern mit dem Anzeigeprogramm. Aber die Vorschau kann das doch eigentlich, oder?

Ansonsten kannst du natürlich auch ein
Code:
sleep 5
load 'file.gnp'
am Ende deiner Gnuplot Datei einfügen und dann wir der Plot alle 5 Sekunden automatisch neu erstellt. Wahlweise dann noch das terminal auf x11/aquaterm stellen und so kannst du dir dann auch die Änderungen anzeigen lassen.
 
Hi H+ ( :) )

Ja, mir geht es um die Aktualisierung der Anzeige. Meine Vorschau kann das nicht. Da muss man immer erst das eps durch "Öffnen" wieder laden.
Ich bin mir der Möglichkeit von Aquaterm bewußt. Aber das läuft bei mir dann wie folgt:

'gnuplot script.plt' im terminal
Bisher habe ich den output gleich in eine .eps-Datei umgeleitet. Dann gab es keinen output für aquaterm. Mache ich das nicht, dann öffnet sich bei jeder Skriptausführung ein Aquatermfenster und ich habe am Ende zehn Fenster. Das gefiel mir irgendwie auch nicht (zuviele Fenster).
Außerdem habe ich es nicht hinbekommen, gleichzeitig eine Ausgabe in Aquaterm und im eps file zu bekommen.
Ich muss wohl mal mehr googeln. Entschuldigung.

Viele Grüße
b.
 
Du kannst den Plot zuerst in das aquaterm/x11 terminal plotten und dann mit
Code:
set term <was auch immer du für eps brauchst>
replot
erneut plotten, dann jedoch die Ausgabe in die eps Datei weiterleiten. Das mit den mehreren Fenstern verstehe ich schon. Da stellt sich mir die Frage, ob du wirklich alle Daten gleichzeitig beobachten musst?

Jens
 
Guten Abend,
für PDF-Dateien gibt es die gute Lösung namens Skim (http://skim-app.sourceforge.net/). Solltest Du also auch eine PDF-Datei ausgeben können, dann wäre das vielleicht die Lösung.

Gruß
Intu
 
PDFs lädt Vorschau meiner Meinung nach auch automatisch neu bei Änderung. Wundert mich nur, dass der Autoreload nur auf PDF beschränkt ist.
 
Hallo. Ich habe es schon mit Skim, TeXniscope probiert. Beides klappte nicht für eps.
Intunine, ja, pdf-Ausgabe könnte ich einmal probieren. Das kann man ja auch in LaTeX einbinden.
iTob:Vorschau wandelt eps erstmal in pdf um. Manchmal hat es mich gefragt, ob ich die Änderungen sehen will. Allerdings, wenn ich ja gesagt habe, ist nichts passiert. Dann musste ich das eps doch wieder per Hand öffnen.
Jens: Nein, ich muss nicht alle Fenster gleichzeitig beobachten. Das Aquaterm schließt die Fenster nur nicht, wenn man einen neuen plot-Befehl ausführt. Es öffnet ein neues Fenster. Vielleicht ist das auch nicht der geeignete Weg, wie ich das mache: Ich habe immer ein testfile.plt, wodrin alle gnuplot-Befehle stehen. Das ändere ich immer. Dann führe ich dieses Skript mit "gnuplot testfile.plt" im Terminal aus. Im Skript gibt es keinen replot, sondern nur einen plot-Befehl. Deswegen denke ich, wird Aquaterm stets ein neues Fenster aufmachen, obwohl es sich um den gleichen Graph mit den gleichen Daten handelt. Ich habe z.b. nur die x-Achse geändert. Im Moment habe ich es aber so wie Du vorgeschlagen gelöst. Erstmal alles plotten lassen, dann öffnet sich ein Aquaterm-Fenster, dann set terminal postscript und replot. Dann sehe ich zwar die Änderungen sofort, aber habe eben auch viele Aquaterm-Fenster auf, wenn ich diesen Spaß ständig wiederhole.
Vielen Dank für Eure Antworten!
Euch einen schönen Abend.
Grüße
b.
 
Wenn du das für LaTeX brauchst, warum bindest du es dann nicht direkt ein, z.B. mit TikZ/PGF/pfgplots (das auf gnuplot zurückgreift bzw. greifen kann)? Ist doch viel schöner. Zumal die Beschriftungen dann in LaTeX-Art – also auch mit umfangreichen Mathezeichen/Formeln – gemacht werden können.
Der einzige Haken ist, dass das Kompilieren dann länger dauert, aber dafür hab ich mir einen Workaroud gebastelt, in dem ich die Bilder in externen Dateien speicher und diese nur in der Schlussversion lade.

Wenn du willst, mache ich dir auch ein Beispiel dazu.
 
Du kannst doch auch mit set multiplot mehrere plots in einem Fenster plotten. Hilft dir das?
 
Ach ja: Du kannst auch den gnuplot-Befehl um die Option presist ergänzen, dann wird immer einen neues (X11) Fenster geöffnet, also:

gnuplot -presist datei.gp (oder ähnlich)
 
Genau das will der TE ja vermeiden ;)
Mache ich das nicht, dann öffnet sich bei jeder Skriptausführung ein Aquatermfenster und ich habe am Ende zehn Fenster. Das gefiel mir irgendwie auch nicht (zuviele Fenster).
 
Ah... mea culpa. Nicht aufgepasst...

Aber genau das ist es, was mich am dirketen Terminal-Aufruf auch gestört hat. Ich starte inzwischen erst gnuplot und rufe das Skript dan mit load "datei.gp" auf. Dann wird mein X11-Fenster immer aktualisiert.

Btw. Was ist den der Vorteil von aquaterm gegen über X11, mal abgesehen davon, dass es nativ ist und eben nicht X11. Hab’s bisher nicht geschafft gnuplot und aquaterm zu „paaren“.
 
Guten Abend.
Den Vorteil von Aquaterm kenne ich jetzt auch nicht wirklich. Es kommt als "Plotfenster" eben mit. X11 habe ich noch gar nicht probiert. Ich habe Gnuplot immer im Terminal gestartet.
iTob, du meinst also load "script.plt" (gibt es eigentlich einen Unterschied zwischen der Endung .plt und .gp?) und dann in X11 Gnuplot aufrufen.
Mir ging es nie um mehrere Plots von verschiedenen Datensätzen. Ich wollte nur einen Datensatz (=1Graphik) plotten und wenn man irgendwas ändert (Titel, xlabel) sollte man das sofort in einem Fenster sehen können, das sich eben aktualisiert, wenn Veränderungen vorgenommen worden sind.
Hat Euch das nie gestört?

Wenn du das für LaTeX brauchst, warum bindest du es dann nicht direkt ein, z.B. mit TikZ/PGF/pfgplots (das auf gnuplot zurückgreift bzw. greifen kann)? Ist doch viel schöner. Zumal die Beschriftungen dann in LaTeX-Art – also auch mit umfangreichen Mathezeichen/Formeln – gemacht werden können.
Der einzige Haken ist, dass das Kompilieren dann länger dauert, aber dafür hab ich mir einen Workaroud gebastelt, in dem ich die Bilder in externen Dateien speicher und diese nur in der Schlussversion lade.
Wenn du willst, mache ich dir auch ein Beispiel dazu.

Die Möglichkeit kenne ich noch nicht. Das wäre aber interessant für die Endversion der Diss. Magst Du dein Beispiel hier veröffentlichen?
Mich ärgert das Matlab und dessen eps-Exportfunktion sehr, weil Sonderzeichen furchtbar sind.
Im Moment reichen aber nur grobe Plots. Ich muss erst noch die Daten sortieren und sichten. Die "Beautys" kommen dann in den Bericht.

Vielen Dank für Eure Vorschläge und Entschuldigung bitte, daß ich mich so blöd ausgedrückt habe.
Gruß
b.
 
Also zunächst mal mein Arbeitsablauf zum Verarbeiten von Daten mit Gnuplot, ganz kleinschrittig, um Missverständnissen vorzubeugen ;)

  1. Ich erstelle (mit dem Editor Fraise) ein Skript. Die Endung ist völlig egal, glaub ich. Gnuplot nimmt wohl alles, und wenn du datei.mutti schreibst wird gnuplot das auch fressen, ist nur die Frage, wie sinnvoll das ist und es kann sein, das bestimmte Editoren an der Endung erkennen, dass es für gnuplot ist und dann das Syntaxhighlighting entsprechend einstellen.
  2. Die Datei im Editor bleibt die ganze Zeit geöffnet
  3. Jetzt starte ich im Terminal gnuplot mit
    Code:
    iTobs-MacBook:~ Tobi$ gnuplot
  4. und lade dann im gestarteten gnuplot mein Skript mit
    Code:
    gnuplot> load "Pfad/Datei.mutti"
    wobei man den Pfad auch weglassen kann, wenn man bevor man gnuplot gestartet hat, im Terminal in das entspreche Verzeichnis navigiert hat. (Übrigens kann man Dateien/Ordner einfach auf das Terminalfenster ziehen, es wird dann der vollständige Pfad an der aktuellen Cursor-Position eingefügt und anschließen ein Leerzeichen (!).)
  5. Dann drücke ich Enter, gnuplot rechnet und es öffnet sich ein X11-Fenster mit meinem Plot, denn X11 ist bei meinem gnuplot als Standard eingestellt.
  6. Jetzt wird’s spannend: Wenn ich nun was ändere, ändere ich das im Editor (Fraise) und speichere das Skript
  7. Dann wechsele ich ins Terminal bzw. zu gnuplot und drücke Pfeil-rauf, um den letzten eingegebenen Befhel wieder zu bekomen
  8. mit einem Druck auf Enter wird der Plot dann aktualisiert.
Das funktioniert für mich, auch wenn der Reload nicht ganz automatisch funktioniert.

Ein Beispiel kann ich dir schicken, schreib einfach eine PN! Brauche allerdings etwas, weil ich dann auch ein paar Erklärungen dazu schreiben möchte, für ich ich noch keine Zeit hat …

Liebe Grüße
iTob
 
Mir drängt sich grad eine Frage auf, die ich mal hier schnell nebenbei stellen will: Kann gnuplot Schnittpunkte von zwei Graphen berechnen? Wenn ja, wie? Habe nix dazu gefunden, aber es kann doch nicht sein, dass so ein mächtiges Tool nicht mal kann, was mein alter Grafiktaschenrechner leistet oder?
 
Warum machst du das nicht über x11?
Du gibst einfach nur ein plot sin (x) und x11 zeigt es dir, und wenn du dann was anderes plottest zeigt x11 dir das neue ein, da musst du nicht erst ne datei erzeugen oder so, so arbeite ich auch immer, und erst wenn der graf so ist wie ich ihn haben will, wird der exportiert als eps.
 
Mal sehen. Wenn ich zeit habe, schaue ich mir das mal an. Danke!
 
Zurück
Oben Unten