3D-Flächenplot 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

Dieses Tutorial zeigt Schritt für Schritt, wie man mit Matplotlib in Python eine 3D-Oberfläche darstellt. Die 3D-Oberfläche wird mit der Farbpalette coolwarm gefärbt und durch die Angabe von "antialiased=False" als undurchsichtig dargestellt. Im Tutorial wird auch die Verwendung von .LinearLocator und die benutzerdefinierte Formatierung der Z-Achsenbeschriftungen gezeigt.

Tipps für die VM

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der linken oberen 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 um Hilfe bitten. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.

Bibliotheken importieren

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cm
from matplotlib.ticker import LinearLocator

Wir importieren die erforderlichen Bibliotheken für das Tutorial. Matplotlib ist eine Plotbibliothek für Python, die eine Schnittstelle ähnlich der von MATLAB bietet. Numpy ist ein grundlegendes Paket für wissenschaftliches Rechnen in Python.

Figur und Achsen erstellen

fig, ax = plt.subplots(subplot_kw={"projection": "3d"})

Wir erstellen eine Figur und Achsen mit dem Parameter subplot_kw, der auf "projection": "3d" gesetzt ist. Dies erzeugt eine 3D-Projektion des Graphen.

Daten erstellen

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

Wir erstellen die Daten für den Graphen. Wir erstellen die X- und Y-Werte als Arrays mit gleichmäßig verteilten Werten von -5 bis 5 in Schritten von 0,25. Anschließend erstellen wir ein Gitternetz von X- und Y-Werten mit np.meshgrid(). Wir verwenden das Gitternetz, um die R-Werte zu berechnen, die die Entfernung vom Ursprung darstellen. Anschließend berechnen wir die Z-Werte mit der sin()-Funktion von R.

Die Fläche darstellen

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

Wir stellen die Fläche mit der Funktion plot_surface() dar. Wir übergeben die X-, Y- und Z-Werte sowie den Parameter cmap, der auf cm.coolwarm gesetzt ist, um die Fläche mit der Farbpalette coolwarm zu färben. Wir setzen auch linewidth=0, um das Gitter zu entfernen, und antialiased=False, um die Fläche als undurchsichtig darzustellen.

Die Z-Achse anpassen

ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
## A StrMethodFormatter is used automatically
ax.zaxis.set_major_formatter('{x:.02f}')

Wir passen die Z-Achse an, indem wir die set_zlim()-Funktion verwenden, um die Grenzen der Z-Achse auf -1,01 bis 1,01 festzulegen. Anschließend verwenden wir die set_major_locator()-Funktion, um die Anzahl der Striche auf der Z-Achse auf 10 zu setzen, indem wir LinearLocator(10) verwenden. Schließlich verwenden wir die set_major_formatter()-Funktion, um die Beschriftungen der Striche auf der Z-Achse mit einem StrMethodFormatter zu formatieren.

Eine Farbskala hinzufügen

fig.colorbar(surf, shrink=0.5, aspect=5)

Wir fügen einer Grafik eine Farbskala hinzu, indem wir die colorbar()-Funktion verwenden. Wir übergeben das surf-Objekt und legen shrink=0.5 und aspect=5 fest, um die Größe der Farbskala anzupassen.

Zusammenfassung

In diesem Tutorial wurde gezeigt, wie man mit Matplotlib in Python eine 3D-Fläche darstellt. Wir haben eine Figur und Achsen erstellt, die Daten erzeugt, die Fläche geplottet, die Z-Achse angepasst und eine Farbskala hinzugefügt. Matplotlib ist ein leistungsstarkes Tool zur Erstellung von Visualisierungen in Python.