Hallo zusammen,
ich habe mit wxPython eine Benutzeroberfläche programmiert und benutze die durch den Benutzer eingegebenen Daten um damit ein C-Programm zu starten. Den daraus berechneten Datensatz möchte ich 3dimensional visualisieren und über die GUI anzeigen. Wichtig wäre, dass das Diagramm gedreht werden kann.
Habt ihr Tipps mit welchem Tool ich das am besten umsetzen kann? Ist gnuplot dafür geeignet, und/oder gibt es besseres?
Grüße
3d Daten visualisieren
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
matplotib bzw. pylab kommt mir spontan in den Sinn.
Hier ein Beispiel zu 3d mit matplotlib.
Hier ein Beispiel zu 3d mit matplotlib.
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Mir kommt auch was spontan in den Sinn 
Habe noch nie versucht Visual Python in irgend etwas zu integrieren, aber die Beispiele die dabei sind zeigen was es alles so kann.
http://www.vpython.org/

Habe noch nie versucht Visual Python in irgend etwas zu integrieren, aber die Beispiele die dabei sind zeigen was es alles so kann.
http://www.vpython.org/
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
http://www.opendx.org/ Hab's noch nie benutzt, aber es gibt auch eine Python-API dafuer.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Was für Daten sind es geanu? Du sprichst von 3D bzw. einem Diagramm.
Wenn es Diagramme sind kann ich matplotlib und gnuplot empfehlen, wobei ich nur mit letzterem 3D visualisiert habe. Solange man sich eine Punktwolke anschaut ist das auch 3D ganz ok. Bei Oberflächen muss man mit gnuplot ein Netz (grid) erzeugen das halte ich für eher schlecht.
Für komplexere Sachen kann ich vtk (auch als Datenformat) empfehlen, und evtl. paraview bzw. matplolib zur Visualisierung.
Opendx ist eigenltich ganz nett, hat aber so seine Tücken. Man braucht doch 2-3 Tage um druchzublicken wie man die Sachen visualisiert. Es zickt auch leider wenn man mehr als 100 Datensätze einladen will,.... Mir schient es ist nciht mehr aktuell.
Wenn es Diagramme sind kann ich matplotlib und gnuplot empfehlen, wobei ich nur mit letzterem 3D visualisiert habe. Solange man sich eine Punktwolke anschaut ist das auch 3D ganz ok. Bei Oberflächen muss man mit gnuplot ein Netz (grid) erzeugen das halte ich für eher schlecht.
Für komplexere Sachen kann ich vtk (auch als Datenformat) empfehlen, und evtl. paraview bzw. matplolib zur Visualisierung.
Opendx ist eigenltich ganz nett, hat aber so seine Tücken. Man braucht doch 2-3 Tage um druchzublicken wie man die Sachen visualisiert. Es zickt auch leider wenn man mehr als 100 Datensätze einladen will,.... Mir schient es ist nciht mehr aktuell.
Ich hab weit mehr als 100 Datensätze. Geht ehr an bzw über die 30000. Also scheint OpenDx ja wohl nichts zu sein?
Ich möchte beides, einmal nur die Punkte und dann eben eine durch die Punkte interpolierte Fläche 3d darstellen.
Ich möchte beides, einmal nur die Punkte und dann eben eine durch die Punkte interpolierte Fläche 3d darstellen.
Sorry das ich mich so spät melde, kann sein das man mit dx über Umwege mit Python auch mehr als 100 Datensätze einlesen kann. Oder du nutzt falls vorhanden den batch-Modus was bei der Datenmenge wohl sowieseo empfehlenswert ist.
Ich würde an deiner Stelle erstmal schauen ob gnuplot reicht.
Probleme gibt es bei nicht rechteckigen Punktewolken. dgrid gibt das grid an, die ersten beiden Parameter sind die Netzauflösung, der 3 gibt an wie weit Information interpoliert werden soll. Ich finde das ganze eher unsauber.
Ich würde an deiner Stelle erstmal schauen ob gnuplot reicht.
Code: Alles auswählen
set xrange [0:1000]
set yrange [0:1000]
set xlabel "[m]"
set ylabel "[m]"
set zlabel "[Pa]"
# Generate interpolation mesh
set dgrid3d 40,40,4
#set pm3d for plotting (set pm3d map for 2D)
set pm3d
# set nice rainbow palette
set palette rgbformulae 22,13,-31
#set view
set view 90,0,1,1
#plot
splot "meinedataei.dat" using ($1):($2):($3) with pm3d