Seite 1 von 1

Bild offen halten, aber wie?

Verfasst: Sonntag 20. Februar 2005, 14:35
von Gast
Hi, ich habe folgendes Problem. Ich hab ein Programm geschrieben was Werte in eine Datei schreibt und mit der ich dann automatisch mit gnuplot ein Diagramm plotten lasse. Aber leider wird das Diagrammfenster gleich nach dem Öffnen wieder geschlossen. Da hab ich mir gesagt: "Ookayyy!" *stirnrunzel* und hab das Prog so umgeschrieben, dass es das Diagramm als Bild absteichert und danach automatisch öffnet. Was passiert? Na? Natürlich das gleich wie vorher auch. Das Bild schließt sich sofort wieder.
Was kann man da machen?

Verfasst: Sonntag 20. Februar 2005, 15:31
von Leonidas
Wenn das programm sich beendet, werden alle Prozesse die an Popen dran waren gekillt. Somit musst du dein Programm entweder offen halten, oder den Unterprozess asynchron starten.

Verfasst: Sonntag 20. Februar 2005, 18:04
von mawe
Hi!

Eine kurze Suche hier im Forum hätte die Lösung gezeigt:

Code: Alles auswählen

import os
f = os.popen('gnuplot -persist','w')
print >> f, "plot sin(x)"
Schliesst sich nicht mehr, oder? :wink:

Gruß, mawe

Verfasst: Sonntag 20. Februar 2005, 21:31
von Gast
Ich habe WinXP als OS. Und das plotten funktioniert nicht. Er öffnet das Plot-Fenster nicht, sondern nur das Hauptprogramm.
Was bedeuten eigentlich die Pfeile in:
print >> f, "plot sin(x)"

Verfasst: Sonntag 20. Februar 2005, 21:34
von Leonidas
Anonymous hat geschrieben:Ich habe WinXP als OS. Und das plotten funktioniert nicht. Er öffnet das Plot-Fenster nicht, sondern nur das Hauptprogramm.
gnuplot unter Windows verträgt sich nicht sonderlich mit pipes. DU brauchst pgnuplot zusätzlich.

Verfasst: Montag 21. Februar 2005, 00:10
von BlackJack
Anonymous hat geschrieben:Was bedeuten eigentlich die Pfeile in:
print >> f, "plot sin(x)"
Das bedeutet die Ausgabe geht nicht an die Standardausgabe sondern an das Dateiobjekt `f`. Ist also in etwa äquivalent zu folgendem:

Code: Alles auswählen

f.write('plot sin(x)\n')
f.flush()

Verfasst: Montag 21. Februar 2005, 08:37
von mawe
Hi!
Gast hat geschrieben: Ich habe WinXP als OS
Für's nächste Mal: wäre schön wenn Du das gleich im ersten Post dazusagen würdest :wink:

Gruß, mawe

Verfasst: Montag 21. Februar 2005, 10:30
von Gast
Ich hab das mit pgnuplot jetzt mal ausprobiert, aber das Diagramm wird wieder gleich nach dem plotten geschlossen.

Verfasst: Montag 21. Februar 2005, 10:33
von Gast
Ach nochwas. Wie startet man den Prozess asynchron? In der Hilfe steht was von 'nem asyncevents(), hat das was damit zu tun?

Verfasst: Montag 21. Februar 2005, 13:27
von Leonidas
Versuchs doch mal mit gnuplot.py.