Plotagem de Superfícies 3D com Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este laboratório é um tutorial passo a passo sobre como plotar uma superfície 3D usando Matplotlib em Python. A superfície 3D é colorida com o colormap (mapa de cores) coolwarm e tornada opaca usando "antialiased=False". O tutorial também demonstra o uso do .LinearLocator e formatação personalizada para os rótulos dos ticks (marcas) do eixo z.

Dicas para a VM (Máquina Virtual)

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar Bibliotecas

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cm
from matplotlib.ticker import LinearLocator

Importamos as bibliotecas necessárias para o tutorial. Matplotlib é uma biblioteca de plotagem para Python que fornece uma interface semelhante ao MATLAB. Numpy é um pacote fundamental para computação científica em Python.

Criar Figura e Eixos

fig, ax = plt.subplots(subplot_kw={"projection": "3d"})

Criamos uma figura e eixos com o parâmetro subplot_kw definido como "projection": "3d". Isso criará uma projeção 3D do gráfico.

Criar Dados

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

Criamos os dados para o gráfico. Criamos os valores X e Y como arrays com valores espaçados uniformemente de -5 a 5 em incrementos de 0.25. Em seguida, criamos uma malha (meshgrid) de valores X e Y usando np.meshgrid(). Usamos a malha para calcular os valores R, que é a distância da origem. Em seguida, calculamos os valores Z usando a função sin() de R.

Plotar a Superfície

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

Plotamos a superfície usando a função plot_surface(). Passamos os valores X, Y e Z, bem como o parâmetro cmap definido como cm.coolwarm para colorir a superfície com o mapa de cores coolwarm. Também definimos linewidth=0 para remover o wireframe (estrutura de arame) e antialiased=False para tornar a superfície opaca.

Personalizar o Eixo Z

ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
## A StrMethodFormatter is used automatically
ax.zaxis.set_major_formatter('{x:.02f}')

Personalizamos o eixo z usando a função set_zlim() para definir os limites do eixo z de -1.01 a 1.01. Em seguida, usamos a função set_major_locator() para definir o número de marcas (ticks) no eixo z para 10, usando LinearLocator(10). Finalmente, usamos a função set_major_formatter() para formatar os rótulos das marcas do eixo z usando um StrMethodFormatter.

Adicionar uma Barra de Cores

fig.colorbar(surf, shrink=0.5, aspect=5)

Adicionamos uma barra de cores ao gráfico usando a função colorbar(). Passamos o objeto surf e definimos shrink=0.5 e aspect=5 para ajustar o tamanho da barra de cores.

Resumo

Este tutorial demonstrou como plotar uma superfície 3D usando Matplotlib em Python. Criamos uma figura e eixos, criamos os dados, plotamos a superfície, personalizamos o eixo z e adicionamos uma barra de cores. Matplotlib é uma ferramenta poderosa para criar visualizações em Python.