Gnuplot Interfacen

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
gecko
User
Beiträge: 47
Registriert: Samstag 9. Juni 2007, 10:48

Hallo,

ich möchte Gnuplot über Python ansprechen, was im Forum schon mehrmals angesprochen wurde. Bisher haben die Pipes über Popen für mich nicht funktioniert. Nun gibt es folgende Möglichkeiten:

1. über eine Pipe Library zuverlässig pipen
2. Gnuplotlibpy auf numpy porten über altercode im oldnumeric packacge von numpy
3. eine alte Pythonversion und Numeric nutzen
4. warten und so lange Matplotlib verwenden bis jemand das Problem gelöst hat

Was mich wundert ist, dass das gplt modul aus scipy geworfen wurde.

Eigentlich hätte ich vermutet es gäbe schon eine Lösung. Bisher konnte ich nicht fündig werden.

Danke im voraus für alle Links/Vorschläge.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

gecko hat geschrieben:Bisher haben die Pipes über Popen für mich nicht funktioniert
Warum nicht?
gecko
User
Beiträge: 47
Registriert: Samstag 9. Juni 2007, 10:48

Code: Alles auswählen

>>> f = os.popen('gnuplot', 'w')
>>> print >> f, 'plot sin(x)'
>>> f.flush()

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    f.flush()
IOError: [Errno 32] Broken pipe
BlackJack

Ich denke Zeile 6 verrät den Schuldigen. Versuch's mal mit einer anderen Python-Shell.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Überleg er mal subprocess zu verwenden ;)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo!

Ich weiß nicht, ob es wirklich an PyShell liegt.

Code: Alles auswählen

>>> import os
>>> s = """plot sin(x)/x
... splot sin(x*y/20)
... plot sin(x) title 'Sine Function', tan(x) title 'Tangent'"""
>>> p = os.popen(r"J:\Ablage\gnuplot\bin\pgnuplot.exe", "w")
>>> p.write(s)
>>>
PyShell unter Windows und funktioniert einwandfrei.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
gecko
User
Beiträge: 47
Registriert: Samstag 9. Juni 2007, 10:48

Danke für die Antworten. Ich werde das mal mit der anderen Shell und Subprocess versuchen.
Antworten