3d Daten visualisieren

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
student84
User
Beiträge: 5
Registriert: Dienstag 8. April 2008, 08:04

Dienstag 8. April 2008, 19:20

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
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Dienstag 8. April 2008, 19:45

matplotib bzw. pylab kommt mir spontan in den Sinn.
Hier ein Beispiel zu 3d mit matplotlib.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Dienstag 8. April 2008, 20:27

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/
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Mittwoch 9. April 2008, 08:18

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
Lufia
User
Beiträge: 83
Registriert: Samstag 13. Mai 2006, 10:04
Wohnort: Berlin

Mittwoch 9. April 2008, 12:38

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.
student84
User
Beiträge: 5
Registriert: Dienstag 8. April 2008, 08:04

Mittwoch 9. April 2008, 16:16

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.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 9. April 2008, 21:35

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

Freitag 11. April 2008, 08:19

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.

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 
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.
Antworten