Interaction de la souris avec un tracé 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 démontre un exemple de la manière d'interagir avec la zone de tracé en se connectant à des événements de mouvement et de clic à l'aide de la bibliothèque Matplotlib en Python. Matplotlib est une bibliothèque de visualisation de données qui permet aux utilisateurs de créer des visualisations statiques, animées et interactives en Python.

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 Notebook pour la pratique.

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

Création d'un tracé de sinusoïde

Tout d'abord, nous devons créer un tracé de sinusoïde à l'aide des bibliothèques numpy et matplotlib.

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)

Événement de mouvement de la souris

Nous pouvons nous connecter à des événements de mouvement de la souris en utilisant la méthode motion_notify_event. Dans cet exemple, nous affichons les coordonnées de données x et y et les coordonnées de pixels x et y lorsque la souris se déplace sur le tracé.

def on_move(event):
    if event.inaxes:
        print(f'data coords {event.xdata} {event.ydata},',
              f'pixel coords {event.x} {event.y}')

binding_id = plt.connect('motion_notify_event', on_move)

Événement de clic de souris

Nous pouvons nous connecter à des événements de clic de souris en utilisant la méthode button_press_event. Dans cet exemple, nous déconnectons la fonction de rappel d'événement de mouvement de souris lorsque le bouton gauche de la souris est cliqué.

from matplotlib.backend_bases import MouseButton

def on_click(event):
    if event.button is MouseButton.LEFT:
        print('disconnecting callback')
        plt.disconnect(binding_id)

plt.connect('button_press_event', on_click)

Affichage du tracé

Enfin, nous devons afficher le tracé à l'aide de la méthode show.

plt.show()

Sommaire

Ce laboratoire a démontré comment interagir avec un tracé Matplotlib à l'aide d'événements de mouvement et de clic de souris. En vous connectant à ces événements, vous pouvez effectuer diverses actions telles que l'affichage des coordonnées du pointeur de souris, la déconnexion des fonctions de rappel, etc. Cette technique peut être utile pour créer des visualisations interactives en Python.