Animar un gráfico de wireframe tridimensional

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo animar una trama de alambre 3D utilizando Matplotlib, una popular biblioteca de visualización de datos en Python.

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 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 su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.

Importar bibliotecas

El primer paso es importar las bibliotecas necesarias: Matplotlib, NumPy y time.

import time
import matplotlib.pyplot as plt
import numpy as np

Configurar la figura y el subgráfico

El segundo paso es configurar la figura y el subgráfico. Crearemos un gráfico 3D utilizando add_subplot.

fig = plt.figure()
ax = fig.add_subplot(projection='3d')

Crear una malla (Meshgrid)

El tercer paso es crear una malla utilizando linspace.

xs = np.linspace(-1, 1, 50)
ys = np.linspace(-1, 1, 50)
X, Y = np.meshgrid(xs, ys)

Establecer límites del eje z

El cuarto paso es establecer los límites del eje z para que no se recalculen en cada fotograma.

ax.set_zlim(-1, 1)

Animar el gráfico

El quinto paso es animar el gráfico. Utilizaremos un bucle for para iterar a través de una serie de valores para phi. En cada iteración, eliminaremos la colección de líneas anterior, generaremos nuevos datos, graficaremos el nuevo wireframe y pausaremos brevemente antes de continuar.

wframe = None
tstart = time.time()
for phi in np.linspace(0, 180. / np.pi, 100):
    if wframe:
        wframe.remove()
    Z = np.cos(2 * np.pi * X + phi) * (1 - np.hypot(X, Y))
    wframe = ax.plot_wireframe(X, Y, Z, rstride=2, cstride=2)
    plt.pause(.001)

Mostrar la tasa de fotogramas por segundo promedio (FPS)

El sexto paso es mostrar la tasa de fotogramas por segundo promedio (FPS) utilizando el tiempo total que tardó en ejecutarse la animación.

print('Average FPS: %f' % (100 / (time.time() - tstart)))

Resumen

En este laboratorio, aprendimos cómo animar un gráfico de wireframe tridimensional utilizando Matplotlib. Utilizamos un bucle for para iterar a través de una serie de valores para phi, generamos nuevos datos, graficamos el nuevo wireframe y pausamos brevemente antes de continuar. Finalmente, mostramos la tasa de fotogramas por segundo promedio (FPS) utilizando el tiempo total que tardó en ejecutarse la animación.