Crear animaciones con Matplotlib

MatplotlibMatplotlibBeginner
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, aprenderá a crear una animación con Matplotlib. Específicamente, aprenderá a pausar y reanudar una animación utilizando los métodos Animation.pause() y Animation.resume().

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 puede automatizarse 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

En este paso, importaremos las bibliotecas necesarias para crear una animación con Matplotlib.

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

Definir la animación

En este paso, definiremos la animación que queremos crear. Crearemos una animación que muestra una distribución normal que se mueve hacia la derecha en cada fotograma.

class PauseAnimation:
    def __init__(self):
        ## Crear la figura y el eje
        fig, ax = plt.subplots()
        ax.set_title('Haga clic para pausar/reenudar la animación')

        ## Crear los valores del eje x
        x = np.linspace(-0.1, 0.1, 1000)

        ## Comenzar con una distribución normal
        self.n0 = (1.0 / ((4 * np.pi * 2e-4 * 0.1) ** 0.5)
                   * np.exp(-x ** 2 / (4 * 2e-4 * 0.1)))

        ## Crear la gráfica
        self.p, = ax.plot(x, self.n0)

        ## Crear la animación
        self.animation = animation.FuncAnimation(
            fig, self.update, frames=200, interval=50, blit=True)

        ## Establecer la animación como no pausada
        self.paused = False

        ## Agregar un evento de pulsación de botón para alternar la pausa
        fig.canvas.mpl_connect('button_press_event', self.toggle_pause)

    def toggle_pause(self, *args, **kwargs):
        ## Alternar entre pausado y no pausado
        if self.paused:
            self.animation.resume()
        else:
            self.animation.pause()
        self.paused = not self.paused

    def update(self, i):
        ## Actualizar la distribución normal
        self.n0 += i / 100 % 5
        self.p.set_ydata(self.n0 % 20)
        return (self.p,)

Crear el objeto de animación

En este paso, crearemos un objeto de la clase PauseAnimation que definimos en el paso 2.

pa = PauseAnimation()

Mostrar la animación

En este paso, mostraremos la animación que creamos en el paso 2.

plt.show()

Resumen

En este laboratorio, aprendiste cómo crear una animación con Matplotlib y cómo pausar y reanudar la animación utilizando los métodos Animation.pause() y Animation.resume(). También aprendiste cómo crear una animación interactiva que responda a la entrada del usuario. Con este conocimiento, puedes crear tus propias animaciones personalizadas y agregar interactividad a ellas.