Criando Imagens Animadas com Matplotlib

Beginner

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

Introdução

Neste laboratório, aprenderemos como criar uma imagem animada usando listas pré-computadas de imagens. Usaremos a biblioteca Matplotlib em Python para criar a animação. O objetivo deste laboratório é demonstrar o processo de criação de uma imagem animada e fornecer uma compreensão básica de como ela funciona.

Dicas para a VM

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

Para começar, precisamos importar as bibliotecas que usaremos. Usaremos a biblioteca Matplotlib para criar a animação e a biblioteca Numpy para gerar os dados para a animação.

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

Criar os Objetos Figura e Eixos

Em seguida, precisamos criar os objetos figura e eixos que usaremos para criar a animação. Usaremos o método subplots para criar esses objetos.

fig, ax = plt.subplots()

Definir a Função

Agora precisamos definir a função que usaremos para gerar os dados para a animação. Neste exemplo, usaremos as funções seno e cosseno para gerar os dados.

def f(x, y):
    return np.sin(x) + np.cos(y)

Gerar os Dados

Usaremos o método linspace da biblioteca Numpy para gerar os dados para a animação. Geraremos dois conjuntos de dados, x e y, e então remodelaremos os dados y para criar um array bidimensional.

x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)

Criar os Quadros da Animação

Agora criaremos os quadros para a animação. Usaremos um loop for para gerar 60 quadros. Em cada iteração do loop, atualizaremos os dados x e y e, em seguida, criaremos um novo objeto de imagem usando o método imshow. Em seguida, anexaremos o objeto de imagem à lista ims.

ims = []
for i in range(60):
    x += np.pi / 15
    y += np.pi / 30
    im = ax.imshow(f(x, y), animated=True)
    if i == 0:
        ax.imshow(f(x, y))  ## show an initial one first
    ims.append([im])

Criar a Animação

Agora criaremos a animação usando o método ArtistAnimation. Passaremos o objeto figure, a lista ims, o intervalo entre os quadros e o atraso de repetição.

ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True, repeat_delay=1000)

Exibir a Animação

Finalmente, usaremos o método show para exibir a animação.

plt.show()

Resumo

Neste laboratório, aprendemos como criar uma imagem animada usando listas de imagens pré-calculadas. Usamos a biblioteca Matplotlib em Python para criar a animação e a biblioteca Numpy para gerar os dados para a animação. Criamos os objetos figure e axes, definimos a função, geramos os dados, criamos os quadros da animação e criamos a animação. Em seguida, exibimos a animação usando o método show. Este laboratório forneceu uma compreensão básica de como criar uma imagem animada e demonstrou o processo de fazê-lo.