Comment créer un tracé de surface dans Matplotlib
Dans Matplotlib, nous utilisons la boîte à outils mplot3d
pour l’analyse et la visualisation 3D qui contient des méthodes de traçage 3D construites au-dessus des fonctions 2D de Matplotlib. Nous pouvons créer des axes 3D en passant l’argument projection='3d'
à l’une des fonctions de création des axes dans Matplotlib. Une fois les axes 3D initialisés, nous pouvons utiliser la méthode plot_surface()
pour générer des tracés de surface.
Méthode Axes3D.plot_surface()
Nous pouvons créer un tracé de surface en utilisant la méthode Axes3D.plot_surface(X, Y, Z, *args, **kwargs)
où X, Y et Z sont tous des tableaux 2D.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
fig = plt.figure(figsize=(8, 6))
ax3d = plt.axes(projection="3d")
xdata = np.linspace(-3, 3, 100)
ydata = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(xdata, ydata)
Z = 1 / (1 + np.exp(-X - Y))
ax3d = plt.axes(projection="3d")
ax3d.plot_surface(X, Y, Z, cmap="plasma")
ax3d.set_title("Surface Plot in Matplotlib")
ax3d.set_xlabel("X")
ax3d.set_ylabel("Y")
ax3d.set_zlabel("Z")
plt.show()
Cela génère un tracé de surface dans l’espace 3D à l’aide de Matplotlib. Ici, le paramètre cmap
est utilisé pour faire une bonne représentation de nos données dans l’espace colorimétrique 3D. La couleur du tracé varie avec la variation de la valeur de la variable dépendante.
Nous pouvons personnaliser le tracé en variant les paramètres suivants:
rstride
: taille du pas de ligne dont la valeur par défaut est 10cstride
: Taille du pas de colonne dont la valeur par défaut est 10color
: Couleur de la surfacecmap
: palette de couleurs de la surfacefacecolors
: Couleurs de visage pour chaque patch dans la surfacenorm
: une instance de Normalize pour mapper les valeurs aux couleursvmin
: valeur minimale à mappervmax
: valeur maximale à mappershadow
: Faut-il ombrer les couleurs
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
fig = plt.figure(figsize=(8, 6))
ax3d = plt.axes(projection="3d")
xdata = np.linspace(-3, 3, 100)
ydata = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(xdata, ydata)
Z = 1 / (1 + np.exp(-X - Y))
ax3d = plt.axes(projection="3d")
surf = ax3d.plot_surface(X, Y, Z, rstride=7, cstride=7, cmap="viridis")
fig.colorbar(surf, ax=ax3d)
ax3d.set_title("Surface Plot in Matplotlib")
ax3d.set_xlabel("X")
ax3d.set_ylabel("Y")
ax3d.set_zlabel("Z")
plt.savefig("Customized Surface Plot.png")
plt.show()
Dans cet exemple, nous ajoutons une barre de couleur dans la figure en utilisant la méthode colorbar()
et en passant l’objet de tracé de surface à la méthode qui rend la figure plus informative.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn