Einführung
In diesem Lab werden wir mithilfe von Matplotlib einen dreieckigen 3D-Konturplot erstellen. Dieser Plot eignet sich zur Visualisierung unstrukturierter dreieckiger Gitter. Wir werden die gleichen Daten wie in der zweiten Abbildung von trisurf3d_2 verwenden.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Importieren der erforderlichen Bibliotheken
Wir beginnen mit dem Importieren der erforderlichen Bibliotheken für dieses Lab, die Matplotlib und NumPy einschließlich umfassen.
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.tri as tri
Variablen definieren
Wir werden die Variablen definieren, die wir verwenden werden, um unseren Plot zu erstellen. Zu diesen Variablen gehören die Anzahl der Winkel, die Anzahl der Radien und der minimale Radius.
n_angles = 48
n_radii = 8
min_radius = 0.25
Erstellen des Gitters und Berechnen von x, y, z
Wir werden das Gitter in Polarkoordinaten erstellen und x, y, z mithilfe der definierten Variablen berechnen.
radii = np.linspace(min_radius, 0.95, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)
angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)
angles[:, 1::2] += np.pi/n_angles
x = (radii*np.cos(angles)).flatten()
y = (radii*np.sin(angles)).flatten()
z = (np.cos(radii)*np.cos(3*angles)).flatten()
Erstellen einer benutzerdefinierten Triangulation
Wir werden eine benutzerdefinierte Triangulation mithilfe der x- und y-Koordinaten erstellen.
triang = tri.Triangulation(x, y)
Maskieren unerwünschter Dreiecke
Wir werden die unerwünschten Dreiecke mithilfe des Mittelwerts der x- und y-Koordinaten maskieren.
triang.set_mask(np.hypot(x[triang.triangles].mean(axis=1),
y[triang.triangles].mean(axis=1))
< min_radius)
Erstellen eines 3D-Konturplots
Wir werden einen 3D-Konturplot erstellen, indem wir die erstellte Triangulation und die z-Koordinaten verwenden. Wir werden auch den Blickwinkel anpassen, um den Plot besser zu verstehen.
ax = plt.figure().add_subplot(projection='3d')
ax.tricontour(triang, z, cmap=plt.cm.CMRmap)
ax.view_init(elev=45.)
plt.show()
Zusammenfassung
In diesem Lab haben wir einen dreidimensionalen Konturplot in Form eines Dreiecks mit Matplotlib erstellt. Wir haben die Schritte des Importierens der erforderlichen Bibliotheken, der Definition von Variablen, der Erstellung eines Gitters, der Erstellung einer benutzerdefinierten Triangulation, des Maskierens unerwünschter Dreiecke und der Erstellung des 3D-Konturplots durchgeführt.