Hallo Leute,
Ich werde am Ende einen 4D Array haben, dieser ist so aufgebaut: 3 Koordinaten mit einem zugehörigen Wert zwischen 0-100.
Bei den Werten handelt es sich um Ultraschallmessungen, eines Körpers mit einer Bohrung drinnen, da wo ich eine Bohrung habe ist der Wert zwischen 0-100 sehr hoch und da wo ich keine Bohrung habe gegen 0..
Nun möchte ich die Bohrung in 3D plotten, ich kenne bis jetzt nur mytplotlib, ist es damit möglich denn hier steht dass es ziemlich limitiert ist: https://python-graph-gallery.com/3d/
Meine Idee ist es am Ende halt alle z.B. alle Punkte mit einer Wert größer als 20 zu Plotten, oder mit einer Farbkodierung abhängig vom Wert.
Habt ihr Erfahrungen?
Am Ende soll das ganze ungefähr so aussehen:
VIELEN DANKE FÜR JEGLICHE HILFE!!!
3D Plot in Python welche Lib ?
Wenn ich dem glauben darf, dann kann matplotlib das auch. Ich habe damit keine (!) Erfahrung.
https://jakevdp.github.io/PythonDataSci ... tting.html
Ferner (Google-Suche):
https://www.mantidproject.org/MantidPlo ... _in_Python
https://plot.ly/python/3d-surface-plots/
Wenn Du mich fragst: Frag konkret bei stackoverflow nach, da könnte es Leute geben, die so etwas auch mal machen...
https://jakevdp.github.io/PythonDataSci ... tting.html
Ferner (Google-Suche):
https://www.mantidproject.org/MantidPlo ... _in_Python
https://plot.ly/python/3d-surface-plots/
Wenn Du mich fragst: Frag konkret bei stackoverflow nach, da könnte es Leute geben, die so etwas auch mal machen...
@MagBen hast du eigentlich verstanden wie der 3d Numpy array in dem Beispiel aufgebaut ist? Ich verstehe die Test Datei auch nicht wirklich bzw weiß ich nicht, wie ich sie lese..: http://graphics.stanford.edu/data/volda ... ain.tar.gz' .
Hab irgendwie Probleme damit zu verstehen, wie mayavi numpy arrays haben möchte und vor allem visualisiert..
Hab irgendwie Probleme damit zu verstehen, wie mayavi numpy arrays haben möchte und vor allem visualisiert..
Code: Alles auswählen
### Read the data in a numpy 3D array #########################################
import numpy as np
import os
data = np.array([np.fromfile(os.path.join('MRbrain', 'MRbrain.%i' % i),
dtype='>u2') for i in range(1, 110)])
data.shape = (109, 256, 256)
data = data.T
# data.shape -> (256, 256, 109)
Das Array bekommt die Form (109, 256, 256) und wird dann transponiert und hat dann die Form (256, 256, 109).
Die Werte sind 16bit unsigned
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Würde dir nicht ein 3D Scatterplot weiterhelfen?
Für jeden Wert in deiner 3D-Matrix der größer ist als zB 10 einen Punkt setzen?
https://matplotlib.org/gallery/mplot3d/ ... atter3d-py
Für jeden Wert in deiner 3D-Matrix der größer ist als zB 10 einen Punkt setzen?
https://matplotlib.org/gallery/mplot3d/ ... atter3d-py
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Hallo Thomas,
vielen Dank! Hab mittlerweile schon ein paar Test Dateien in Mayavi visualisiert.
Den Scatterplot von Matplotlib habe ich mir auch schon angeguckt, aber ich denke mayavi ist hier im Vorteil oder?
1. Lässt sich bei Mayavi die Transparenz der Punkte abhängig zum Skalaren Wert einstellen
2. Könnte ich mit numpy.where() Punkte ausfiltern.
Was mir jedoch noch Probleme bereitet ist, dass die Darstellung nicht smooth aussieht, ich besitze Kugeln an den gegeben Koordinaten, jedoch 'vermischt' das ganze nicht miteinander. Entweder Point3d() ist nicht die richtige Funktion für meinen Fall oder ich brauche einen passenden marching cubes Algorithmus..
vielen Dank! Hab mittlerweile schon ein paar Test Dateien in Mayavi visualisiert.
Den Scatterplot von Matplotlib habe ich mir auch schon angeguckt, aber ich denke mayavi ist hier im Vorteil oder?
1. Lässt sich bei Mayavi die Transparenz der Punkte abhängig zum Skalaren Wert einstellen
2. Könnte ich mit numpy.where() Punkte ausfiltern.
Was mir jedoch noch Probleme bereitet ist, dass die Darstellung nicht smooth aussieht, ich besitze Kugeln an den gegeben Koordinaten, jedoch 'vermischt' das ganze nicht miteinander. Entweder Point3d() ist nicht die richtige Funktion für meinen Fall oder ich brauche einen passenden marching cubes Algorithmus..
1. ich habe mich noch nicht mit Mayavi beschäftigt, kann ich nichts zu sagen
2. wenn du mit "filtern" meinst, Werte in der Matrix die z.B. unterhalb eines bestimmten Schwellwertes liegen, auf 0 zu setzen, Ja.
idx = np.where(bild < 20)
bild[idx] = 0
2. wenn du mit "filtern" meinst, Werte in der Matrix die z.B. unterhalb eines bestimmten Schwellwertes liegen, auf 0 zu setzen, Ja.
idx = np.where(bild < 20)
bild[idx] = 0
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Kam gerade mittels Python Weekly - ist m. E. etwas anderes, als was du da suchst, passt aber noch zum Thema. Möglicherweise für Dich von Interesse:
"mne-python
MNE-Python software is an open-source Python package for exploring, visualizing, and analyzing human neurophysiological data such as MEG, EEG, sEEG, ECoG, and more. It includes modules for data input/output, preprocessing, visualization, source estimation, time-frequency analysis, connectivity analysis, machine learning, and statistics."
https://github.com/mne-tools/mne-python
"mne-python
MNE-Python software is an open-source Python package for exploring, visualizing, and analyzing human neurophysiological data such as MEG, EEG, sEEG, ECoG, and more. It includes modules for data input/output, preprocessing, visualization, source estimation, time-frequency analysis, connectivity analysis, machine learning, and statistics."
https://github.com/mne-tools/mne-python