Animar um Gráfico Wireframe 3D

Beginner

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

Introdução

Neste laboratório, aprenderemos como animar um gráfico de wireframe 3D usando Matplotlib, uma popular biblioteca de visualização de dados em Python.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e 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

O primeiro passo é importar as bibliotecas necessárias: Matplotlib, NumPy e time.

import time
import matplotlib.pyplot as plt
import numpy as np

Configurar a Figura e o Subplot

O segundo passo é configurar a figura e o subplot. Criaremos um gráfico 3D usando add_subplot.

fig = plt.figure()
ax = fig.add_subplot(projection='3d')

Criar uma Meshgrid

O terceiro passo é criar uma meshgrid usando linspace.

xs = np.linspace(-1, 1, 50)
ys = np.linspace(-1, 1, 50)
X, Y = np.meshgrid(xs, ys)

Definir os Limites do Eixo Z

O quarto passo é definir os limites do eixo z para que não sejam recalculados a cada frame.

ax.set_zlim(-1, 1)

Animar o Gráfico

O quinto passo é animar o gráfico. Usaremos um loop for para iterar através de uma faixa de valores para phi. Em cada iteração, removeremos a coleção de linhas anterior, geraremos novos dados, plotaremos o novo wireframe e faremos uma pausa brevemente antes de continuar.

wframe = None
tstart = time.time()
for phi in np.linspace(0, 180. / np.pi, 100):
    if wframe:
        wframe.remove()
    Z = np.cos(2 * np.pi * X + phi) * (1 - np.hypot(X, Y))
    wframe = ax.plot_wireframe(X, Y, Z, rstride=2, cstride=2)
    plt.pause(.001)

Exibir a Média de FPS

O sexto passo é exibir a média de quadros por segundo (FPS) usando o tempo total que levou para executar a animação.

print('Average FPS: %f' % (100 / (time.time() - tstart)))

Resumo

Neste laboratório, aprendemos como animar um gráfico wireframe 3D usando Matplotlib. Usamos um loop for para iterar através de uma faixa de valores para phi, geramos novos dados, plotamos o novo wireframe e pausamos brevemente antes de continuar. Finalmente, exibimos a média de quadros por segundo (FPS) usando o tempo total que levou para executar a animação.