Introducción
Este tutorial lo guiará a través del proceso de usar Matplotlib para capturar marcos individuales de una película y escribirlos en un archivo. Este método es útil para generar animaciones y se puede hacer sin la integración del bucle de eventos.
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 las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje comentarios después de la sesión y lo resolveremos rápidamente para usted.
Importar las bibliotecas necesarias
En primer lugar, necesitamos importar las bibliotecas necesarias para generar la animación. Usaremos numpy para generar números aleatorios, matplotlib para trazar gráficos y FFMpegWriter para escribir los marcos en un archivo.
import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from matplotlib.animation import FFMpegWriter
Configurar el escritor
Necesitamos configurar el escritor que se utilizará para escribir los marcos en un archivo. Establecemos los fotogramas por segundo (fps) y agregamos metadatos como el título, el artista y el comentario.
metadata = dict(title='Movie Test', artist='Matplotlib',
comment='Movie support!')
writer = FFMpegWriter(fps=15, metadata=metadata)
Configurar la figura
Creamos una figura y establecemos los límites de los ejes x e y para la gráfica.
fig = plt.figure()
plt.xlim(-5, 5)
plt.ylim(-5, 5)
Configurar la gráfica
Creamos una gráfica de línea y establecemos los datos iniciales como una matriz vacía.
l, = plt.plot([], [], 'k-o')
Capturar marcos y escribir en un archivo
Recorremos 100 iteraciones y generamos números aleatorios para las coordenadas x e y. Actualizamos los datos de la gráfica de línea y capturamos el marco usando el escritor. Finalmente, guardamos los marcos en un archivo.
x0, y0 = 0, 0
with writer.saving(fig, "writer_test.mp4", 100):
for i in range(100):
x0 += 0.1 * np.random.randn()
y0 += 0.1 * np.random.randn()
l.set_data(x0, y0)
writer.grab_frame()
Resumen
Este tutorial te mostró cómo usar Matplotlib para capturar marcos de una película y escribirlos en un archivo. Cubrimos los pasos necesarios desde la configuración del escritor hasta el bucle a través de las iteraciones y la generación de números aleatorios para la gráfica. Este método es útil para generar animaciones sin la integración del bucle de eventos.