Annoter les graphiques Matplotlib avec des systèmes de coordonnées

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Matplotlib est un puissant outil de visualisation qui permet aux utilisateurs de créer une grande variété de graphiques et de diagrammes. Les annotations sont une fonction importante de Matplotlib qui permettent aux utilisateurs d'ajouter du texte et des flèches à leurs graphiques. Dans ce tutoriel, nous allons apprendre à utiliser différents systèmes de coordonnées pour les annotations.

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.

Importation des bibliothèques

La première étape consiste à importer les bibliothèques nécessaires. Nous utiliserons la bibliothèque matplotlib.pyplot pour créer notre graphique et nos annotations.

import matplotlib.pyplot as plt
import numpy as np

Création de données

Ensuite, nous allons créer des données à tracer. Nous utiliserons la bibliothèque numpy pour créer une onde sinusoïdale.

x = np.arange(0, 10, 0.005)
y = np.exp(-x/2.) * np.sin(2*np.pi*x)

Création du graphique

Maintenant, nous allons créer le graphique en utilisant la bibliothèque matplotlib.pyplot. Nous allons définir les limites des axes x et y puis tracer les données.

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)

Transformer les coordonnées

L'étape suivante consiste à transformer les coordonnées des données et de l'affichage. Nous utiliserons la méthode ax.transData pour transformer les coordonnées des données et le système de coordonnées pixels de la figure pour transformer les coordonnées d'affichage.

xdata, ydata = 5, 0
xdisplay, ydisplay = ax.transData.transform((xdata, ydata))

Ajouter des annotations

La dernière étape consiste à ajouter des annotations au graphique. Nous utiliserons la méthode ax.annotate pour ajouter du texte et des flèches au graphique. Nous utiliserons également les paramètres bbox et arrowprops pour styliser les annotations.

bbox = dict(boxstyle="round", fc="0.8")
arrowprops = dict(
    arrowstyle="->",
    connectionstyle="angle,angleA=0,angleB=90,rad=10")

offset = 72
ax.annotate(
    f'data = ({xdata:.1f}, {ydata:.1f})',
    (xdata, ydata),
    xytext=(-2*offset, offset), textcoords='offset points',
    bbox=bbox, arrowprops=arrowprops)
ax.annotate(
    f'display = ({xdisplay:.1f}, {ydisplay:.1f})',
    xy=(xdisplay, ydisplay), xycoords='figure pixels',
    xytext=(0.5*offset, -offset), textcoords='offset points',
    bbox=bbox, arrowprops=arrowprops)

Afficher le graphique

La dernière étape consiste à afficher le graphique en utilisant la méthode plt.show().

plt.show()

Sommaire

Dans ce tutoriel, nous avons appris à utiliser différents systèmes de coordonnées pour les annotations dans Matplotlib. Nous avons créé un graphique, transformé les coordonnées des données et d'affichage, et ajouté des annotations au graphique en utilisant la méthode ax.annotate. Les annotations sont une fonction importante de Matplotlib qui permet aux utilisateurs d'ajouter du contexte et des informations à leurs graphiques.