Gnuplot via Python

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
Refugee

Hat jemand Erfahrung mit der Verwendung von Gnuplot (zur Darstellung von Daten und fit derselben) mittels Python unter Windows?

Ich denke, ich habe alles installiert, aber ich kann Gnuplot nicht von Python aus ansteuern.

Fürs erste wäre ich schon zufrieden wenn ich zB von Python aus eine sin(x) - Kurve darstellen könnte.
In Gnuplot schreibt man einfach "plot sin(x)".
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Es gibt ein Modul namens Gnuplot. Ansonsten hier ein kleines Beispiel ohne dem Modul:

Code: Alles auswählen

import os
f = os.popen('gnuplot','w')
print >> f, "set yrange[-300:300]"
for n in range(300):
	print >> f, "plot %i*cos(x)+%i*log(x+10)" % (n,150-n)
f.flush()
UPDATE: Hier ist noch Dein sin(x):

Code: Alles auswählen

import os
f = os.popen('gnuplot -persist','w')
print >> f, "plot sin(x)"
PS: Ich hab das nur unter Linux getestet, keine Ahnung ob es so auch unter Windows funktioniert.

Gruß, mawe
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mawe hat geschrieben:PS: Ich hab das nur unter Linux getestet, keine Ahnung ob es so auch unter Windows funktioniert.
Das gnuplot Binary, dass ich habe (aus Maxima 5.9.1) geht nicht, das will nicht recht mit Pipes, aber es gibt pgnuplot. Bei Bedarf kann ich es kompilieren und hochladen, dann bitte PM an mich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi Leonidas!

Funtioniert's mit dem Gnuplot-Modul auch nicht?

Gruß, mawe
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mawe hat geschrieben:Funtioniert's mit dem Gnuplot-Modul auch nicht?
Von "auch" nicht kann nicht die Rede sein, den wenn man statt gnuplot in deinem Beispiel pgnuplot nimmt, dann wird die gnuplot GUI wgnuplot aufgerufen und plottet schon richtig. Doof nur, dass das Script sich recht schnell sich beendet, somit auch den gnuplot Prozess killt.

Code: Alles auswählen

import os
f = os.popen('pgnuplot -persist','w')
print >> f, "plot sin(x)" 
f.flush()
while True:
    pass
Nun, dieser Code läuft bei mir.. aber nur manchmal: manchmal öffnet er zweimal wgnuplot und macht gar nichts, einmal öffnet er ein wgnuplot und tut genauso wenig und manchmal läuft es genau richtig.

Das gnuplot Modul braucht Numeric, und da habe ich jetzt nicht so wahnsinnig viel Lust des zu installieren.. aber wenn du willst kann ich das schon machen und testen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi Leonidas!

Nöö, mach dir wegen mir keine Umstände :wink:. War nur rein interessehalber. Bei mir funktionierts ja (hihi :D).

Gruß, mawe
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hmm, ich vermute mal das das Modul funktioniert. Aber ich nutze Gnuplot nicht aus Python, höchstens mal aus Maxima, und dafür reichts ja.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sonium
User
Beiträge: 66
Registriert: Mittwoch 27. Oktober 2004, 21:04

Leonidas hat geschrieben:
mawe hat geschrieben:Funtioniert's mit dem Gnuplot-Modul auch nicht?
Doof nur, dass das Script sich recht schnell sich beendet, somit auch den gnuplot Prozess killt.
Das selbe Problem hatte ich auch schon, weil ich gnuplot in nem extra thread aufgerufen hab und der sich ziemlich schnell beendet hatte, und dann hab ich erst mal zwei Tage gesucht wo der Fehler ist.
Bau doch alternativ am Schluss so ne warte Funktion wie

raw_input("Press Anykey to Exit")

ein.

Aber Gnuplot kann ja über

>set terminal png
>set output file.png
>replot

auch als in eine, in diesem Fall *.png, Datei exportieren.

Bei mir (win32) hat es btw ausgereicht das Gnuplot verzeichniss der $Path Variable hinzu zu fügen.
Antworten