Tracer des surfaces avec des points dans un espace 3D à l'aide de Matplotlib
Dans cet article, nous explorons comment créer un tracé de surface qui englobe une collection de points dans un espace tridimensionnel à l'aide de la bibliothèque Matplotlib de Python, en particulier son module mplot3d.
La fonction plot_surface dans mplot3d nécessite des tableaux bidimensionnels pour les arguments X, Y et Z, plutôt qu'une liste de 3 tuples comme tu as. Par conséquent, la première étape consiste à préparer vos données dans le format nécessaire.
Pour les surfaces, contrairement aux tracés linéaires, vous aurez besoin d'une grille matricielle 2D représentant le domaine. L'utilisation de points discrets, comme les 3 tuples que vous avez, présente un défi car il existe de multiples triangulations potentielles qui peuvent créer une surface.
Considérez ce code Python qui génère une surface lisse, où 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>
Dans cet exemple, X et Y sont des tableaux 2D représentant le domaine, et Z est le tableau de valeurs correspondant pour chaque point. La fonction plot_surface utilise ces tableaux pour créer une surface lisse. Cette approche convient aux surfaces définies par une fonction mathématique.
Cependant, si vos données sont constituées uniquement de points 3D discrets, vous devrez peut-être envisager d'autres options.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!