Animación matplotlib
En Matplotlib, puede crear visualizaciones que respondan a la entrada del usuario, como clics del mouse o pulsaciones de teclas. Se pueden crear visualizaciones interactivas utilizando las mismas técnicas que las animaciones.
La animación de Matplotlib
Matplotlib es una biblioteca que se utiliza para el trazado 2D, pero también incluye funciones para crear animaciones, y el módulo matplotlib.animation
facilita la creación de animaciones.
La función de animación toma una figura y una función de animación. La función de animación llamará a cada fotograma de la animación.
La figura es un contenedor para las hachas, los artistas y el lienzo. Los ejes son donde dibujará la trama, y los artistas son los objetos que dibujarán en el lienzo.
La función de animación puede llamar con un argumento de intervalo que especifica el número de milisegundos entre cuadros, y el valor predeterminado es 1000
. El módulo matplotlib.animation
también incluye una función para crear una película.
La función de película toma una figura y una función de animación.
Instalar Matplotlib en Python
Hay varias formas de instalar Matplotlib. La forma más fácil es usar el comando pip
.
pip install matplotlib
Para instalar Matplotlib, necesitará una instalación funcional de la biblioteca numpy
. De nuevo utilizaremos el famoso comando pip
.
pip install numpy
Una vez que haya instalado numPy
, puede instalar Matplotlib desde su código fuente. Finalmente, ejecute el siguiente comando.
python setup.py install
Debe tener privilegios de administrador si desea instalar Matplotlib para todos los usuarios de su sistema. En Linux, puede hacer esto ejecutando el comando.
sudo python setup.py install
En Windows, deberá ejecutar el comando.
python setup.py install
Si desea instalar matplotlib
para un solo usuario, puede utilizar la opción --user flag
.
python setup.py install --user
Crear animación en Matplotlib
Crear una animación en Matplotlib es relativamente simple e implica usar la clase FuncAnimation
. Para crear una animación, primero debe crear una figura y una instancia de ejes.
La figura se creará usando la función pyplot.figure()
y los ejes se crearán usando la función pyplot.axes()
.
Una vez que haya creado la figura y los ejes, puede usar la clase FuncAnimation
para animar la figura.
La clase FuncAnimation
requiere una función de animación, que debe definirse antes de que se cree la animación. La función de animación debe tomar un único parámetro: el número de cuadro.
El número de cuadro determina la apariencia de la figura en cada paso de la animación. La función de animación puede contener cualquier código de trazado, que se ejecutará una vez que se actualice el número de cuadro.
Para crear la animación, debes llamar a la función anim = FuncAnimation(fig, func, frames=frames)
, donde fig
es la figura y func
es la función de animación.
El argumento de fotogramas es opcional y se utiliza para especificar el número de fotogramas de la animación. Si no se especifica, la animación se ejecutará hasta que se cierre la figura.
Ejemplo de código:
# import the required libraries and modules
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import numpy as np
fig = plt.figure()
ax = plt.axes(xlim=(0, 4), ylim=(-2, 2))
(ln,) = ax.plot([], [], "bo")
xdata, ydata = [], []
def init():
ax.set_xlim(0, 2 * np.pi)
ax.set_ylim(-1, 1)
return (ln,)
def update(frame):
xdata.append(frame)
ydata.append(np.sin(frame))
ln.set_data(xdata, ydata)
return (ln,)
anim = FuncAnimation(
fig, update, frames=np.linspace(0, 2 * np.pi, 128), init_func=init, blit=True
)
anim.save("animation.gif", writer="imagemagick", fps=60)
Producción:
Conclusión
Para concluir el artículo sobre la animación de Matplotlib, hemos discutido cómo crear animaciones usando la biblioteca matplotlib
en Python. Así que puedes crear animaciones de una forma muy sencilla.
El artículo anterior muestra que primero, cree la clase FuncAnimation
. Luego creará una figura y una instancia de ejes. Entonces, a partir de estos pasos, puede hacer un gráfico de animación.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn