Événement de défilement Matplotlib

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

Ce laboratoire vous guidera dans un processus étape par étape sur la manière d'utiliser l'événement de défilement dans Matplotlib. L'événement de défilement peut être utilisé pour naviguer à travers des tranches 2D de données 3D.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour la pratique.

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

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.

Importez les bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques nécessaires, qui incluent Matplotlib et NumPy.

import matplotlib.pyplot as plt
import numpy as np

Créez les données

Nous allons créer des données 3D en utilisant la fonction ogrid de NumPy.

x, y, z = np.ogrid[-10:10:100j, -10:10:100j, 1:10:20j]
X = np.sin(x * y * z) / (x * y * z)

Créez la classe IndexTracker

La classe IndexTracker suivra l'index de la tranche actuelle et mettra à jour le tracé en conséquence.

class IndexTracker:
    def __init__(self, ax, X):
        self.index = 0
        self.X = X
        self.ax = ax
        self.im = ax.imshow(self.X[:, :, self.index])
        self.update()

    def on_scroll(self, event):
        increment = 1 if event.button == 'up' else -1
        max_index = self.X.shape[-1] - 1
        self.index = np.clip(self.index + increment, 0, max_index)
        self.update()

    def update(self):
        self.im.set_data(self.X[:, :, self.index])
        self.ax.set_title(
            f'Utilisez la molette de la souris pour naviguer\nindex {self.index}')
        self.im.axes.figure.canvas.draw()

Créez le tracé et connectez l'événement de défilement

Nous allons créer le tracé en utilisant la fonction subplots de Matplotlib et passer l'objet IndexTracker créé à celle-ci. Ensuite, nous allons connecter l'événement de défilement au canevas de la figure en utilisant mpl_connect.

fig, ax = plt.subplots()
tracker = IndexTracker(ax, X)

fig.canvas.mpl_connect('scroll_event', tracker.on_scroll)
plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à utiliser l'événement de défilement dans Matplotlib pour naviguer à travers les tranches 2D de données 3D. Nous avons créé une classe IndexTracker pour suivre l'index de la tranche actuelle et mis à jour le tracé en conséquence. Enfin, nous avons créé le tracé et connecté l'événement de défilement au canevas de la figure.

OSZAR »