Définir un curseur alternatif dans 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 sur la manière de définir un curseur alternatif sur une toile de figure à l'aide de Matplotlib. Le curseur alternatif peut être l'un des curseurs disponibles dans les outils de backend Matplotlib.

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 limites 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.

Importez les bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques requises. Nous utiliserons matplotlib.pyplot et matplotlib.backend_tools.

import matplotlib.pyplot as plt
from matplotlib.backend_tools import Cursors

Créez une figure et définissez des curseurs alternatifs

Ensuite, nous créons une figure et définissons les curseurs alternatifs pour chaque sous-graphique en utilisant une boucle. Nous ajoutons également du texte à chaque sous-graphique pour indiquer le curseur utilisé.

fig, axs = plt.subplots(len(Cursors), figsize=(6, len(Cursors) + 0.5), gridspec_kw={'hspace': 0})
fig.suptitle('Survolez un axe pour voir les curseurs alternatifs')

for cursor, ax in zip(Cursors, axs):
    ax.cursor_to_use = cursor
    ax.text(0.5, 0.5, cursor.name,
            horizontalalignment='center', verticalalignment='center')
    ax.set(xticks=[], yticks=[])

Définissez le curseur au survol

Nous devons définir le curseur sur le curseur alternatif lorsque l'utilisateur survole un sous-graphique. Nous y parvenons en utilisant l'événement motion_notify_event et la fonction set_cursor().

def hover(event):
    if fig.canvas.widgetlock.locked():
        ## Ne faites rien si les outils de zoom/déplacement ont été activés.
        return

    fig.canvas.set_cursor(
        event.inaxes.cursor_to_use if event.inaxes else Cursors.POINTER)

fig.canvas.mpl_connect('motion_notify_event', hover)

Affichez la figure

Enfin, nous affichons la figure à l'aide de la fonction show().

plt.show()

Récapitulatif

Dans ce laboratoire, nous avons appris à définir un curseur alternatif sur une toile de figure à l'aide de Matplotlib. Nous avons créé une figure et défini les curseurs alternatifs pour chaque sous-graphique, puis défini le curseur sur le curseur alternatif lorsque l'utilisateur survole un sous-graphique. Nous avons ensuite affiché la figure.