Python

Creación de gráficos animados con Python

Una de las herramientas más eficaces para la presentación de los resultados son los gráficos. Eficacia que se puede aumentar al animarlos. La creación de gráficos animados en Python es una tarea realmente sencilla gracias a MoviePy. Un módulo para la edición de video que se puede usar tanto para operaciones básicas, como para el procesamiento y la creación de efectos avanzados de video.

Instalación de MoviePy

MoviePy es una librería de Python que, como en la mayoría de los casos, se puede instalar a través de pip. Instalación que únicamente requiere escribir en la terminal el siguiente comando:

pip install moviepy

Creación de una serie de figuras

Antes de poder crear un gráfico animado es necesario crear varias figuras. Los fotogramas de la animación. Estos fotogramas se tienen que guardar como imágenes en una carpeta del ordenador, lo que en Matplotlib se puede conseguir con el método savefig. Ahora, a modo de ejemplo, se puede representar la función exponencial para el eje x con valores que van de 2 a 16, lo que son 15 fotogramas. Estos fotogramas se pueden conseguir con el siguiente código:

import numpy as np
import matplotlib.pyplot as plt

for i in range(2, 17):
    x = np.arange(1, i, .1)
    y = np.exp(x)
    plt.plot(x, y)
    plt.savefig("./figures/figure{0:03d}.png".format(i))
    plt.clf()

En este código se puede ver que se cada una de las figura con el método plot(). Una vez creada la figura se guarda cada una en un archivo con un número que indica el orden en el que se han creado. Posteriormente los fotogramas se van a ordenar alfabéticamente con el nombre del archivo, por lo que, para evitar que el 16 aparezca antes del 2, se completan los números con cero hasta tres dígitos. Obviamente en animaciones con más fotogramas se puede agregar más cero para evitar el problema.

Creación final del video

Una vez se ha creado los fotogramas solamente es necesario obtener una lista con los archivos que se deben incluir en la animación. El listado de los archivos se puede obtener con glob. Para asegurar que los archivos estén en el orden correcto, se puede utilizar la función sort, el cual ordenara los archivos alfabéticamente.

import glob

file_list = sorted(glob.glob('./figures/*.png'))

Tras la obtención de la lista se puede proceder a creación el video. Para lo que se puede importar MoviePy como mpy y se puede usar el método ImageSequenceClip. Un método que tiene dos parámetros importantes el listado de archivos y el número de fotogramas por segundo. En nuestro caso, para crear un video de 5 con 15 fotogramas se va a indicar que el video tenga velocidad de 3 fotogramas por segundo.

import moviepy.editor as mpy

fps = 3
clip = mpy.ImageSequenceClip(file_list, fps=fps)
clip.write_gif('movie.gif')

Finalmente hay que exportar el archivo. Para usarlo en la web una opción puede ser un archivo gif que se puede conseguir mediante el método write_gif(). Generando una animación como la que se muestra a continuación.

Gráfico animado generado con MoviePy

Conclusiones

En esta entrada se ha visto como se puede usar MoviePy para la creación de gráficos animados con Python. Las animaciones son un recurso para presentar los resultados con el que se puede conseguir impacto mayor que con las imágenes estáticas, ya que se puede mostrar la evolución de los datos.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Matplotlib

Recent Posts

Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios

En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…

20 horas ago

Copias de seguridad automáticas en SQL Server con rotación de archivos

Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…

3 días ago

Curiosidad: La Ley de Twyman y la trampa de los datos “interesantes”

En ciencia de datos, pocas cosas llaman más la atención de los científicos de datos…

1 semana ago

Cómo calcular el tamaño de la muestra para encuestas

Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…

1 semana ago

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…

2 semanas ago

Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM

Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…

2 semanas ago

This website uses cookies.