Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Matplotlib ein 3D-Oberflächendiagramm aus einer Sammlung von Punkten erstellen?
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>
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!