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)".
Gnuplot via Python
-
- 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:
UPDATE: Hier ist noch Dein sin(x):
PS: Ich hab das nur unter Linux getestet, keine Ahnung ob es so auch unter Windows funktioniert.
Gruß, mawe
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()
Code: Alles auswählen
import os
f = os.popen('gnuplot -persist','w')
print >> f, "plot sin(x)"
Gruß, mawe
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.mawe hat geschrieben:PS: Ich hab das nur unter Linux getestet, keine Ahnung ob es so auch unter Windows funktioniert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.mawe hat geschrieben:Funtioniert's mit dem Gnuplot-Modul auch nicht?
Code: Alles auswählen
import os
f = os.popen('pgnuplot -persist','w')
print >> f, "plot sin(x)"
f.flush()
while True:
pass
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
-
- 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
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.Leonidas hat geschrieben:Doof nur, dass das Script sich recht schnell sich beendet, somit auch den gnuplot Prozess killt.mawe hat geschrieben:Funtioniert's mit dem Gnuplot-Modul auch nicht?
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.