Creación de imágenes animadas con Matplotlib

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a crear una imagen animada utilizando listas precomputadas de imágenes. Utilizaremos la librería Matplotlib en Python para crear la animación. El propósito de este laboratorio es demostrar el proceso de creación de una imagen animada y proporcionar una comprensión básica de cómo funciona.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar bibliotecas

Para comenzar, necesitamos importar las bibliotecas que utilizaremos. Utilizaremos la biblioteca Matplotlib para crear la animación y la biblioteca Numpy para generar los datos de la animación.

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

Crear los objetos de figura y ejes

A continuación, necesitamos crear los objetos de figura y ejes que utilizaremos para crear la animación. Utilizaremos el método subplots para crear estos objetos.

fig, ax = plt.subplots()

Definir la función

Ahora necesitamos definir la función que utilizaremos para generar los datos de la animación. En este ejemplo, utilizaremos las funciones seno y coseno para generar los datos.

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

Generar los datos

Utilizaremos el método linspace de la biblioteca Numpy para generar los datos de la animación. Generaremos dos conjuntos de datos, x e y, y luego redimensionaremos los datos de y para crear una matriz bidimensional.

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

Crear los fotogramas de la animación

Ahora crearemos los fotogramas de la animación. Utilizaremos un bucle for para generar 60 fotogramas. En cada iteración del bucle, actualizaremos los datos de x e y y luego crearemos un nuevo objeto de imagen utilizando el método imshow. Luego agregaremos el objeto de imagen a la 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])

Crear la animación

Ahora crearemos la animación utilizando el método ArtistAnimation. Pasaremos el objeto de figura, la lista ims, el intervalo entre los fotogramas y el retraso de repetición.

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

Mostrar la animación

Finalmente, utilizaremos el método show para mostrar la animación.

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear una imagen animada utilizando listas previamente calculadas de imágenes. Utilizamos la biblioteca Matplotlib en Python para crear la animación y la biblioteca Numpy para generar los datos de la animación. Creamos los objetos de figura y ejes, definimos la función, generamos los datos, creamos los fotogramas de la animación y creamos la animación. Luego mostramos la animación utilizando el método show. Este laboratorio proporcionó una comprensión básica de cómo crear una imagen animada y demostró el proceso para hacerlo.