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.