Tutoriel sur la gestion d'événements avec 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 est un tutoriel étape par étape sur la manière de connecter des événements dans une fenêtre, par exemple, un clic de souris, à une autre fenêtre de figure dans Python Matplotlib.

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 Notebook pour accéder à Jupyter Notebook pour pratiquer.

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.

Configurer l'environnement

Tout d'abord, nous devons configurer l'environnement Python et importer les bibliothèques nécessaires.

import matplotlib.pyplot as plt
import numpy as np

## Fixing random state for reproducibility
np.random.seed(19680801)

figsrc, axsrc = plt.subplots(figsize=(3.7, 3.7))
figzoom, axzoom = plt.subplots(figsize=(3.7, 3.7))
axsrc.set(xlim=(0, 1), ylim=(0, 1), autoscale_on=False,
          title='Cliquez pour agrandir')
axzoom.set(xlim=(0.45, 0.55), ylim=(0.4, 0.6), autoscale_on=False,
           title='Fenêtre d\'agrandissement')

x, y, s, c = np.random.rand(4, 200)
s *= 200

axsrc.scatter(x, y, s, c)
axzoom.scatter(x, y, s, c)

Définir la fonction on_press

Ensuite, nous définissons une fonction appelée on_press qui ajustera les limites x et y de la deuxième fenêtre en fonction de l'emplacement d'un clic de souris dans la première fenêtre.

def on_press(event):
    if event.button!= 1:
        return
    x, y = event.xdata, event.ydata
    axzoom.set_xlim(x - 0.1, x + 0.1)
    axzoom.set_ylim(y - 0.1, y + 0.1)
    figzoom.canvas.draw()

Connecter l'événement à la fonction

Maintenant, nous connectons l'événement de pression de bouton dans la première fenêtre à la fonction on_press que nous venons de définir.

figsrc.canvas.mpl_connect('button_press_event', on_press)

Afficher le graphique

Enfin, nous affichons le graphique à l'utilisateur.

plt.show()

Récapitulatif

Dans ce laboratoire, nous avons appris à connecter des événements dans une fenêtre, par exemple, un clic de souris, à une autre fenêtre de figure dans Matplotlib de Python. Nous avons également appris à définir une fonction pour ajuster les limites de la deuxième fenêtre en fonction de l'emplacement d'un clic de souris dans la première fenêtre, et à connecter l'événement de pression de bouton à cette fonction.