Crea animaciones con Matplotlib en Python para meter en documentos HTML

¿Sabías que puedes crear animaciones desde matplotlib y que se pueden usar en documentos HTML y con controles para mover los frames hacia adelante, hacia atrás, botón de play, control de la velocidad, control para visualizarlo en bucle,…? Pues sí y, además, es relativamente sencillo.

Obviamente, mejor aprender haciendo así que veámoslo con un ejemplo.

Como siempre, empezamos importando lo que necesitamos:

Lo que voy a animar es un haiku y así quedará más ‘artístico’. Un haiku es un tipo de poesía japonesa que consiste en un poema breve de diecisiete sílabas escrito en tres versos de cinco, siete y cinco sílabas, respectivamente.

El haiku lo he ‘codificado’ para dejar un poco de misterio hasta el final… El cifrado es prácticamente imposible de romper por lo que ni lo intentéis 😀

Además, para que quede más aparente, voy a usar colores que voy a obtener de la función get_named_colors_mapping dentro del módulo matplotlib.colors:

Lo siguiente de lo que voy a hablar es de la parte del código que crea la animación. Para ello voy a necesitar tres partes:

  1. Una primera parte con la figura y la zona donde voy a pintar las cosas.
  2. La segunda cosa que necesito es la función que irá generando los fotogramas de la animación.
  3. Y, por último, necesito una clase que anime todo esto que obtengo del módulo matplotlib.animation. La clase que voy a usar se llama FuncAnimation.

El código por partes será como sigue. La primera parte es la siguiente:

El anterior código inicializa lo que necesito para hacer la animación. A la zona en la que voy a pintar le quito toda la información de los ejes puesto que no los necesito.

La segunda parte es la función que crea los fotogramas:

La función update anterior lo único que hace es añadir texto en posiciones que se van calculando a cada paso y con colores que se van definiendo en la propia función.

La tercera parte es la instanciación de la clase FuncAnimation:

A la función update le iré pasando una serie de cosas en cada fotograma: len(haiku), haiku y colors.

Con lo anterior ya tenemos la maquinaria necesaria para crear la animación.

La instancia anim posee un método muy interesante que voy a usar a continuación:

Ese método, to_jshtml, es el que realiza la magia. Lo que hace es codificar en base64 cada fotograma para poder meterlo directamente como código dentro del documento HTML. Además, la función mete el resto de cosas, css, javascript, HTML, que necesitamos para poder mostrar las imágenes como una animación con controles.

El código completo lo puedes ver a continuación:

Y el resultado del código anterior lo incrusto a continuación:

¡¡¡¡Ta chán!!!!

Espero que os haya gustado el haiku y el artículo.

Si os ha gustado podéis crear un haiku y dejarlo en los comentarios.

Otros artículos relacionados con animaciones:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

− two = six