Clase Matplotlib.animation.FuncAnimation en Python

Matplotlib es una increíble biblioteca de visualización en Python para gráficos 2D de arrays. Matplotlib es una biblioteca de visualización de datos multiplataforma basada en arrays NumPy y diseñada para funcionar con la pila SciPy más amplia.
 

matplotlib.animation.FuncAnimation

La clase matplotlib.animation.FuncAnimation se usa para hacer animaciones llamando repetidamente a la misma función (es decir, func).
 

Sintaxis: class matplotlib.animation.FuncAnimation(fig, func, frames=Ninguno, init_func=Ninguno, fargs=Ninguno, save_count=Ninguno, *, cache_frame_data=True, **kwargs)
Paramwrite.geeksforgeeks.org/wp-admin/post .php?post=1675187&action=editores: 
 

  1. fig: es el objeto de figura utilizado para dibujar, cambiar el tamaño o cualquier otro evento necesario. 
    Cualquier argumento posicional adicional se puede proporcionar a través del parámetro fargs.
     
  2. func: es la función invocable que se llama cada vez. El siguiente valor en marcos se da a través del primer argumento. Cualquier otro argumento posicional adicional se proporciona a través del parámetro fargs. Si el valor de blit es igual a True, func devuelve una iteración de todos los artistas que se modificarán o crearán. El algoritmo de borrado utiliza estos datos para decidir qué partes de la figura deben actualizarse. Si blit== False, el valor devuelto no se usa o se omite.
     
  3. marcos: es iterable, un número entero, una función generadora o ninguna. Es un argumento opcional. Es la fuente de datos que se pasará a func y cada fotograma de la animación.
     
  4. init_func: es una función invocable opcional que se usa para dibujar un marco claro.
     
  5. fargs: es un parámetro opcional que es una tupla o ninguno, que es un argumento adicional que debe pasarse a cada llamada a func.
     
  6. save_count: es un número entero que actúa como respaldo para la cantidad de valores de los marcos a la memoria caché. Esto solo se usa si la cantidad de cuadros no se puede deducir de los cuadros, es decir, cuando es un iterador sin longitud o un generador. Su valor predeterminado es 100.
     
  7. intervalo: Es un valor entero opcional que representa el retraso entre cada cuadro en milisegundos. Su valor predeterminado es 100.
     
  8. repeat_delay: Es un valor entero opcional que agrega un retraso en milisegundos antes de repetir la animación. El valor predeterminado es Ninguno.
     
  9. blit: es un argumento booleano opcional que se usa para controlar el blit para optimizar el dibujo.
     
  10. cache_frame_data: es un argumento booleano opcional que se usa para controlar el almacenamiento en caché de datos. Por defecto es Verdadero. 
     

 

Métodos de la clase:

Métodos Descripción
__init__(self, fig, func[, frames, …]) Inicializarse a sí mismo.
new_frame_seq(auto) Devuelve una nueva secuencia de información de cuadro.
new_saved_frame_seq(auto) Devuelve una nueva secuencia de información de fotogramas guardados/almacenados.
save(self, filename[, escritor, fps, dpi, …]) Guarde la animación como un archivo de película dibujando cada fotograma.
to_html5_video(self[, embed_limit]) Convierta la animación en una etiqueta HTML5 <video>.
to_jshtml(self[, fps, incrustar_fotogramas, …]) Generar representación HTML de la animación.

Ejemplo 1: 
 

Python3

import matplotlib.animation as animation
import matplotlib.pyplot as plt
import numpy as np
 
 
# creating a blank window
# for the animation
fig = plt.figure()
axis = plt.axes(xlim =(-50, 50),
                ylim =(-50, 50))
 
line, = axis.plot([], [], lw = 2)
 
# what will our line dataset
# contain?
def init():
    line.set_data([], [])
    return line,
 
# initializing empty values
# for x and y co-ordinates
xdata, ydata = [], []
 
# animation function
def animate(i):
    # t is a parameter which varies
    # with the frame number
    t = 0.1 * i
     
    # x, y values to be plotted
    x = t * np.sin(t)
    y = t * np.cos(t)
     
    # appending values to the previously
    # empty x and y data holders
    xdata.append(x)
    ydata.append(y)
    line.set_data(xdata, ydata)
     
    return line,
 
# calling the animation function    
anim = animation.FuncAnimation(fig, animate,
                            init_func = init,
                            frames = 500,
                            interval = 20,
                            blit = True)
 
# saves the animation in our desktop
anim.save('growingCoil.mp4', writer = 'ffmpeg', fps = 30)

Producción: 
 

Ejemplo 2: 
 

Python3

from matplotlib import pyplot as plt
import numpy as np
from matplotlib.animation import FuncAnimation
 
# initializing a figure in
# which the graph will be plotted
fig = plt.figure()
 
# marking the x-axis and y-axis
axis = plt.axes(xlim =(0, 4),
                ylim =(-2, 2))
 
# initializing a line variable
line, = axis.plot([], [], lw = 3)
 
# data which the line will
# contain (x, y)
def init():
    line.set_data([], [])
    return line,
 
def animate(i):
    x = np.linspace(0, 4, 1000)
 
    # plots a sine graph
    y = np.sin(2 * np.pi * (x - 0.01 * i))
    line.set_data(x, y)
     
    return line,
 
anim = FuncAnimation(fig, animate,
                    init_func = init,
                    frames = 200,
                    interval = 20,
                    blit = True)
 
anim.save('continuousSineWave.mp4',
          writer = 'ffmpeg', fps = 30)

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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