Bild offen halten, aber wie?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gast

Sonntag 20. Februar 2005, 14:35

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?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 20. Februar 2005, 15:31

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Sonntag 20. Februar 2005, 18:04

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
Gast

Sonntag 20. Februar 2005, 21:31

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)"
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 20. Februar 2005, 21:34

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Montag 21. Februar 2005, 00:10

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()
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Montag 21. Februar 2005, 08:37

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
Gast

Montag 21. Februar 2005, 10:30

Ich hab das mit pgnuplot jetzt mal ausprobiert, aber das Diagramm wird wieder gleich nach dem plotten geschlossen.
Gast

Montag 21. Februar 2005, 10:33

Ach nochwas. Wie startet man den Prozess asynchron? In der Hilfe steht was von 'nem asyncevents(), hat das was damit zu tun?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 21. Februar 2005, 13:27

Versuchs doch mal mit gnuplot.py.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten