Matplotlib avancé

Graphiques de surface 3D

Tracez des surfaces et maillages 3D avec projection="3d", plot_surface et view_init.

Introduction

Certaines données dépendent de deux entrées, comme une hauteur qui dépend de x et de y. Un Axes 3D, créé avec projection="3d", peut les tracer comme une surface. view_init oriente la caméra pour la regarder sous le meilleur angle.

np.meshgrid transforme les deux plages 1D en grilles 2D X et Y, si bien que Z se calcule pour chaque couple (x, y) d'un coup. plot_surface colore la surface avec une palette ; plot_wireframe ne tracerait que le maillage. view_init(elev, azim) place la caméra : elev est l'angle de hauteur et azim tourne autour de l'axe vertical.

Visualiseur interactif

Tournez la caméra avec elev et azim, passez de la surface au maillage (wireframe) et essayez d'autres fonctions.

Exemple Matplotlib exécutable

Matplotlib
Exécuter le code →
main.py
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 40)
y = np.linspace(-3, 3, 40)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))

fig = plt.figure(figsize=(7, 5))
ax = fig.add_subplot(projection="3d")
ax.plot_surface(X, Y, Z, cmap="viridis")
ax.view_init(elev=30, azim=45)
ax.set_title("z = sin(sqrt(x² + y²))")
plt.show()
Obtenir un bouton Run pour cet exemple Le graphique tracé par ce code
Graphiques de surface 3D