Sélecteur de plage 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 tout au long du processus d'utilisation du Sélecteur de plage Matplotlib pour sélectionner une plage sur un axe et tracer une vue détaillée de la plage sélectionnée sur un autre axe.

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 d'étude pour accéder au carnet Jupyter Notebook et pratiquer.

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.

Importation des bibliothèques requises

Tout d'abord, nous devons importer les bibliothèques requises - numpy et matplotlib.

import numpy as np
import matplotlib.pyplot as plt

Création de données d'échantillonnage

Nous allons maintenant créer quelques données d'échantillonnage pour tracer en utilisant numpy.

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

x = np.arange(0.0, 5.0, 0.01)
y = np.sin(2 * np.pi * x) + 0.5 * np.random.randn(len(x))

Création d'une figure et de sous-graphiques

Nous allons maintenant créer une figure avec deux sous-graphiques en utilisant matplotlib.

fig, (ax1, ax2) = plt.subplots(2, figsize=(8, 6))

Tracer les données sur le premier sous-graphique

Nous allons tracer les données d'échantillonnage sur le premier sous-graphique.

ax1.plot(x, y)
ax1.set_ylim(-2, 2)
ax1.set_title('Press left mouse button and drag '
              'to select a region in the top graph')

Définir une fonction de rappel

Nous allons définir une fonction de rappel qui sera appelée lorsqu'une plage est sélectionnée à l'aide du Sélecteur de plage.

def onselect(xmin, xmax):
    indmin, indmax = np.searchsorted(x, (xmin, xmax))
    indmax = min(len(x) - 1, indmax)

    region_x = x[indmin:indmax]
    region_y = y[indmin:indmax]

    if len(region_x) >= 2:
        line2.set_data(region_x, region_y)
        ax2.set_xlim(region_x[0], region_x[-1])
        ax2.set_ylim(region_y.min(), region_y.max())
        fig.canvas.draw_idle()

Créer un Sélecteur de plage

Nous allons créer un objet Sélecteur de plage à l'aide de matplotlib.widgets.SpanSelector.

span = SpanSelector(
    ax1,
    onselect,
    "horizontal",
    useblit=True,
    props=dict(alpha=0.5, facecolor="tab:blue"),
    interactive=True,
    drag_from_anywhere=True
)

Tracer les données sur le second sous-graphique

Nous allons tracer la vue détaillée de la plage sélectionnée sur le second sous-graphique.

line2, = ax2.plot([], [])

Afficher le tracé

Nous allons maintenant afficher le tracé à l'aide de matplotlib.pyplot.show().

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à utiliser le Sélecteur de plage Matplotlib pour sélectionner une plage sur un axe et tracer une vue détaillée de la plage sélectionnée sur un autre axe. Nous avons également appris à créer un objet Sélecteur de plage et à définir une fonction de rappel pour gérer la plage sélectionnée.