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.
Gast

Bild offen halten, aber wie?

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

Beitragvon Leonidas » 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])

Beitragvon mawe » 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

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

Beitragvon Leonidas » 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

Beitragvon 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])

Beitragvon mawe » 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

Beitragvon 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

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

Beitragvon Leonidas » Montag 21. Februar 2005, 13:27

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder