Considérant une liste de 3 tuples désignant des points dans l'espace 3D, la tâche est de générer une surface couvrant ces points.
L'utilisation de plot_surface du package mplot3d nécessite des données d'entrée sous la forme de tableaux 2D pour X, Y et Z. Pour transformer la structure de données donnée, il y a certaines considérations à prendre en compte.
Dans le cas de Les surfaces, contrairement aux tracés linéaires, vous devez définir une grille couvrant le domaine à l'aide de tableaux 2D. Lorsqu’on travaille uniquement avec une liste de points 3D, la triangulation devient essentielle. En effet, il existe plusieurs triangulations possibles pour un nuage de points donné.
Pour une surface lisse, l'approche suivante peut être adoptée :
<code class="python">import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import random def fun(x, y): return x**2 + y 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) zs = np.array(fun(np.ravel(X), np.ravel(Y))) Z = zs.reshape(X.shape) ax.plot_surface(X, Y, Z) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()</code>
Ce code définit une grille à l'aide de meshgrid, génère les valeurs Z correspondantes et crée le tracé de surface à l'aide de plot_surface. La surface résultante fournit une représentation fluide des données sous-jacentes.
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!