3d-plots mit 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
heraklit
User
Beiträge: 31
Registriert: Donnerstag 8. März 2007, 16:50

Hallo,
ich möchte 3d-Oberflächen plotten. Dabei sollte die Ausgabe im Programm (z.B. in wxpython) verwendbar sein. Gehört habe ich bisher von matplotlib und gnuplot. Welches Paket eignet sich für 3d-plots besser, oder gibt es andere Alternativen?
Gruß
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Hi heraklit,

sei doch so nett und probier mal die Suchfunktion des Forums aus. Ich bin mir sicher, vor nicht all zu langer Zeit gab es so eine aehnliche Frage schonmal ;)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
heraklit
User
Beiträge: 31
Registriert: Donnerstag 8. März 2007, 16:50

Hallo,
hab ich schon, aber hieraus kann ich nicht beurteilen, welches der beiden sich besser für 3d-plots eignet. Matplotlib ist wohl eher für 2d-plots geeignet, lässt sich aber in wxpython einbetten, was bei gnuplot wohl nicht der Fall ist.
Gruß
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi,

Matplotlib kann schon 3D, habs dafür selbst aber noch nicht ernsthaft verwendet. Für mich ist gnuplot das Maß aller Dinge. Mit Einbetten schaut's bei gnuplot allerdings traurig aus, fürchte ich.

lg, mawe
Lufia
User
Beiträge: 83
Registriert: Samstag 13. Mai 2006, 10:04
Wohnort: Berlin

Hi,

ich verwende gnuplot recht häufig, aber ohne python. Was genau möchtest du plotten, Funktionen oder "Punkt-Daten" ?
Falls du "Punkt-Daten" als Fläche plotten möchtest ist ein grid notwendig, was durch die Interpolation darauf unter Umständen problematisch sein kann. Funtkionen lassen sich dagegen deutlich besser plotten.
heraklit
User
Beiträge: 31
Registriert: Donnerstag 8. März 2007, 16:50

Hallo,
ich hab mir mal die 3d-Möglichkeiten von matplotlib angesehen. Nachdem ich das Paket erfolgreich installiert habe, wurde der Plot angezeigt, jedoch einige Warnings ausgegeben. Für 2d-Grafiken ist matplotlib ganz gut, aber für 3D weniger (IMHO). Ausgeben möchte ich sowohl Funktionen als auch einzelne Punkte. Ich denke gnuplot ist da geeigneter als matplotlib, auch wenn man es nicht in wxpython einbetten kann.
Gibt es außer den Beispielen zum gnuplot-modul eine Dokumentation?
Kennt ihr noch andere Alternativen fürs 3d-Plotten mit Python?
Gruß!
heraklit
User
Beiträge: 31
Registriert: Donnerstag 8. März 2007, 16:50

Hallo,
ich hab jetzt eine einfache Möglichkeit gefunden, gnuplot ohne das gnuplot-modul zu verwenden (stand irgendwo im Forum):

Code: Alles auswählen

import os
f = os.popen('gnuplot -persist','w')
print >> f, "set xrange[-2:2]"
print >> f, "set yrange[-2:2]"
print >> f, "set pm3d"
print >> f, "splot exp(-x*x)*exp(-y*y)"
f.flush()
Dies stellt eine einfache und effiziente Möglichkeit zum plotten dar. Was ich aber nicht verstehe ist die Syntax

Code: Alles auswählen

print >> f
Weiß jemand was hier genau gemacht wird?
Danke Schön!
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

heraklit hat geschrieben:Kennt ihr noch andere Alternativen fürs 3d-Plotten mit Python?
http://home.gna.org/pychart/
MfG
HWK
heraklit
User
Beiträge: 31
Registriert: Donnerstag 8. März 2007, 16:50

Gut, das Paket eignet sich zwar eher für charts als fürs Plotten von Funktionen, aber trotzdem danke schön.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

nebenbei: Die Macher von matplotlib sagen auch immer wieder explizit, daß MPL eigentlich nur fürs 2D-Plotting gemacht wurde.

Noch ein Nachtrag zum Thread: Die Seite von Scipy listet einige Tools fürs 3D-Plotting oder für 3D-Graphiken auf: http://www.scipy.org/Cookbook
Es ist ein wiki - man kann da auch noch Seiten hinzufügen, falls jemand was Tolles entdeckt *winkmitdemzaunpfahl*.

Gruß,
Christian
Lufia
User
Beiträge: 83
Registriert: Samstag 13. Mai 2006, 10:04
Wohnort: Berlin

Hi,

ich denke wenn du hauptsächlich Funktionen und Datenpunkte plotten möchtest bist du bei gnuplot ganz gut aufgehoben.
Was genau bei

Code: Alles auswählen

  f = os.popen('gnuplot -persist','w') 
passiert würde mich auch interessieren. Ich vermute das gnuplot auf der Komandozeile geöffnet wird. Die später angegebene Zeilen werden dann wohl mit f direkt in den Interpreter geschrieben?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

'>>' ist eigentlich der right shift operator.
Hier aber geht es um eine Erweiterung der print-Syntax. Im Effekt wird der zu druckende String nicht auf sys.stdout gegeben, sondern auf f umgelenkt.
Weitere Erläuterung: http://docs.python.org/ref/print.html

Gruß,
Christian
Antworten