Animer un tracé de maillage 3D

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à animer un tracé en maillage 3D à l'aide de Matplotlib, une bibliothèque populaire de visualisation de données en Python.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques

La première étape consiste à importer les bibliothèques nécessaires : Matplotlib, NumPy et time.

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

Configurer la figure et le sous-graphique

La deuxième étape consiste à configurer la figure et le sous-graphique. Nous allons créer un tracé 3D à l'aide de add_subplot.

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

Créer une grille de maillage

La troisième étape consiste à créer une grille de maillage à l'aide de linspace.

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

Régler les limites de l'axe z

La quatrième étape consiste à régler les limites de l'axe z afin qu'elles ne soient pas recalculées à chaque trame.

ax.set_zlim(-1, 1)

Animer le tracé

La cinquième étape consiste à animer le tracé. Nous allons utiliser une boucle for pour itérer sur une plage de valeurs de phi. Dans chaque itération, nous allons supprimer la collection de lignes précédente, générer de nouvelles données, tracer le nouveau maillage et mettre en pause brièvement avant de continuer.

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)

Afficher le nombre moyen d'images par seconde (FPS)

La sixième étape consiste à afficher le nombre moyen d'images par seconde (FPS) en utilisant le temps total nécessaire pour exécuter l'animation.

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

Sommaire

Dans ce laboratoire, nous avons appris à animer un tracé de maillage 3D à l'aide de Matplotlib. Nous avons utilisé une boucle for pour itérer sur une plage de valeurs de phi, générer de nouvelles données, tracer le nouveau maillage et mettre en pause brièvement avant de continuer. Enfin, nous avons affiché le nombre moyen d'images par seconde (FPS) en utilisant le temps total nécessaire pour exécuter l'animation.