3D-Voxelplotting mit Matplotlib

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie durch den Prozess der Erstellung eines 3D-Voxelplots mithilfe der Matplotlib-Bibliothek in Python geführt. Voxelplots eignen sich hervorragend für die Visualisierung von 3D-Daten auf eine klare und ästhetisch ansprechende Weise. In diesem Lab verwenden wir die Funktion Axes3D.voxels, um einen Voxelplot von zwei Würfeln und einer Verbindung zwischen ihnen zu erstellen.

Tipps für die virtuelle Maschine (VM)

Nachdem die VM gestartet wurde, klicken Sie in der oberen linken Ecke auf die Registerkarte Notebook, um auf Jupyter Notebook für die Übung zuzugreifen.

Manchmal müssen Sie möglicherweise einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Aufgrund von Einschränkungen in Jupyter Notebook kann die Validierung von Vorgängen nicht automatisiert werden.

Wenn Sie während des Lernens Probleme haben, können Sie sich gerne an Labby wenden. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem umgehend für Sie beheben.

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken importieren. In diesem Fall werden wir Matplotlib und NumPy verwenden.

import matplotlib.pyplot as plt
import numpy as np

Vorbereiten der Koordinaten

Als Nächstes werden wir die Koordinaten für unseren Voxelplot vorbereiten. Wir werden ein 8x8x8-Gitter von Punkten mithilfe der Funktion indices von NumPy erstellen.

x, y, z = np.indices((8, 8, 8))

Erstellen der Würfel und der Verbindung

Jetzt werden wir die beiden Würfel und die Verbindung zwischen ihnen erstellen. Dazu definieren wir drei boolesche Arrays, die zu einem einzigen booleschen Array kombiniert werden. Die ersten beiden Arrays definieren die Position der Würfel, während das dritte Array die Position der Verbindung definiert.

cube1 = (x < 3) & (y < 3) & (z < 3)
cube2 = (x >= 5) & (y >= 5) & (z >= 5)
link = abs(x - y) + abs(y - z) + abs(z - x) <= 2

voxelarray = cube1 | cube2 | link

Festlegen der Farben

Jetzt werden wir die Farben für jedes Objekt im Voxelplot festlegen. Dazu erstellen wir ein leeres Array in der gleichen Form wie das boolesche Array, das wir in Schritt 3 erstellt haben, und setzen dann die Farbe jedes Objekts basierend auf seiner Position.

colors = np.empty(voxelarray.shape, dtype=object)
colors[link] = 'red'
colors[cube1] = 'blue'
colors[cube2] = 'green'

Plotten des Voxel-Arrays

Schließlich können wir die Funktion Axes3D.voxels verwenden, um das Voxel-Array mit den angegebenen Farben zu plotten.

ax = plt.figure().add_subplot(projection='3d')
ax.voxels(voxelarray, facecolors=colors, edgecolor='k')

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mit der Matplotlib-Bibliothek in Python einen 3D-Voxelplot erstellt. Wir haben die Koordinaten für den Plot vorbereitet, die Würfel und die Verbindung erstellt, die Farben für jedes Objekt festgelegt und das Voxel-Array mit der Funktion Axes3D.voxels geplottet. Voxelplots sind eine nützliche Methode, um 3D-Daten zu visualisieren, und Matplotlib erleichtert es, sie zu erstellen.