Traçage de surfaces dans Matplotlib
Lorsque vous travaillez avec des données spatiales, la génération de surfaces peut fournir des informations précieuses. Dans Matplotlib, la fonction plot_surface est utilisée à cet effet. Cependant, il nécessite une saisie sous forme de tableaux 2D, ce qui le rend incompatible avec une liste de 3-uplets représentant des points 3D.
Transformation des données
Pour tracer une surface à partir de 3 tuples, nous devons transformer les données dans le format requis. Étant donné que les données fournies n'ont aucune fonction sous-jacente f(x, y), nous devons trianguler les points pour créer une surface.
Triangulation et transformation
Pour le processus de triangulation , nous pouvons utiliser la fonction [triangulate_points](https://matplotlib.org/stable/gallery/mplot3d/triangulation_demo.html). Il génère une liste de triangles qui relient les points fournis, créant ainsi un maillage de surface.
Une fois triangulés, nous pouvons obtenir les tableaux 2D requis pour X, Y et Z. Ces tableaux représentent les coordonnées des sommets. pour chaque triangle.
Tracer la surface
Avec les données transformées, nous pouvons maintenant invoquer plot_surface :
<code class="python">import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection # List of 3-tuples representing points data = [(x1, y1, z1), (x2, y2, z2), ...] # Triangulate the points triangles = triangulate_points(data) # Extract 2D arrays for X, Y, and Z X, Y, Z = zip(*triangles) # Plot the surface fig = plt.figure() ax = fig.add_subplot(111, projection='3d') 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 script générera un surface lisse qui couvre les points 3D donnés.
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!