Visualisierung von unstrukturierten dreieckigen Gittern

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} matplotlib/figures_axes -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} python/booleans -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} python/lists -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} python/tuples -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} python/importing_modules -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} python/numerical_computing -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} python/data_visualization -.-> lab-49005{{"Visualisierung von unstrukturierten dreieckigen Gittern"}} end

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.