Matplotlib avançado

Gráficos de superfície 3D

Desenhe superfícies e malhas 3D com projection="3d", plot_surface e view_init.

Introdução

Alguns dados dependem de duas entradas, como uma altura que depende de x e y. Um Axes 3D, criado com projection="3d", consegue desenhá-los como uma superfície. view_init gira a câmera para você ver do melhor ângulo.

np.meshgrid transforma as duas faixas 1D nas grades 2D X e Y, e assim Z é calculado para cada par (x, y) de uma vez. plot_surface colore a superfície com um mapa de cores; plot_wireframe desenharia só a malha. view_init(elev, azim) posiciona a câmera: elev é o ângulo de altura e azim gira em volta do eixo vertical.

Visualizador interativo

Gire a câmera com elev e azim, alterne entre superfície e malha (wireframe) e teste outras funções.

Exemplo de Matplotlib executável

Matplotlib
Executar código →
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()
Gerar um botão Run para este exemplo O gráfico que este código desenha
Gráficos de superfície 3D