Wie kann ich mit Matplotlib ein 3D-Oberflächendiagramm aus einer Sammlung von Punkten erstellen?

Susan Sarandon
Freigeben: 2024-10-28 03:45:30
Original
399 Leute haben es durchsucht

How can I create a 3D surface plot from a collection of points using Matplotlib?

Plotten von Oberflächen mit Punkten im 3D-Raum mit Matplotlib

In diesem Artikel untersuchen wir, wie man ein Oberflächendiagramm erstellt, das eine Sammlung von umfasst Punkte im dreidimensionalen Raum mithilfe der Matplotlib-Bibliothek von Python, insbesondere des Moduls mplot3d.

Die Funktion plot_surface in mplot3d erfordert zweidimensionale Arrays für X-, Y- und Z-Argumente und keine Liste von 3-Tupeln wie du hast. Daher besteht der erste Schritt darin, Ihre Daten im erforderlichen Format aufzubereiten.

Im Gegensatz zu Liniendiagrammen benötigen Sie für Oberflächen ein 2D-Array-Gitter, das die Domäne darstellt. Die Verwendung diskreter Punkte wie der 3-Tupel, die Sie haben, stellt eine Herausforderung dar, da es mehrere potenzielle Triangulationen gibt, die eine Oberfläche erzeugen können.

Betrachten Sie diesen Python-Code, der eine glatte Oberfläche generiert, wobei f(x, y) = x^2 y:

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = y = np.arange(-3.0, 3.0, 0.05)
X, Y = np.meshgrid(x, y)

# Calculate the Z values for each point in X and Y
zs = np.array(fun(np.ravel(X), np.ravel(Y)))
Z = zs.reshape(X.shape)

# Plot the surface
ax.plot_surface(X, Y, Z)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()</code>
Nach dem Login kopieren

In diesem Beispiel sind X und Y 2D-Arrays, die die Domäne darstellen, und Z ist das entsprechende Wertearray für jeden Punkt. Die Funktion plot_surface verwendet diese Arrays, um eine glatte Oberfläche zu erstellen. Dieser Ansatz eignet sich für Oberflächen, die durch eine mathematische Funktion definiert sind.

Wenn Ihre Daten jedoch ausschließlich aus diskreten 3D-Punkten bestehen, müssen Sie möglicherweise andere Optionen in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Matplotlib ein 3D-Oberflächendiagramm aus einer Sammlung von Punkten erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!