Objets ancrés de Matplotlib

Beginner

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

Introduction

Dans ce laboratoire, vous allez apprendre à utiliser les Objets Ancrés dans Matplotlib. Les Objets Ancrés sont utilisés pour ajouter des objets auxiliaires à un graphique. Ces objets peuvent être utilisés pour ajouter des annotations, des barres d'échelle et des légendes à un graphique.

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 pour pratiquer.

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

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 requises. Nous utiliserons Matplotlib pour ce laboratoire.

from matplotlib import pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.offsetbox import (AnchoredOffsetbox, AuxTransformBox,
                                  DrawingArea, TextArea, VPacker)
from matplotlib.patches import Circle, Ellipse

Créer une figure

L'étape suivante est de créer une figure. Nous allons créer une figure simple avec un seul sous-graphique.

fig, ax = plt.subplots()
ax.set_aspect(1)

Ajouter du texte ancré

Dans cette étape, nous allons ajouter une boîte de texte ancrée dans le coin supérieur gauche de la figure.

def draw_text(ax):
    """Draw a text-box anchored to the upper-left corner of the figure."""
    box = AnchoredOffsetbox(child=TextArea("Figure 1a"),
                            loc="upper left", frameon=True)
    box.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
    ax.add_artist(box)

draw_text(ax)

Ajouter des cercles ancrés

Dans cette étape, nous allons ajouter deux cercles au graphique en utilisant des Objets Ancrés.

def draw_circles(ax):
    """Draw circles in axes coordinates."""
    area = DrawingArea(width=40, height=20)
    area.add_artist(Circle((10, 10), 10, fc="tab:blue"))
    area.add_artist(Circle((30, 10), 5, fc="tab:red"))
    box = AnchoredOffsetbox(
        child=area, loc="upper right", pad=0, frameon=False)
    ax.add_artist(box)

draw_circles(ax)

Ajouter une ellipse ancrée

Dans cette étape, nous allons ajouter une ellipse au graphique en utilisant des Objets Ancrés.

def draw_ellipse(ax):
    """Draw an ellipse of width=0.1, height=0.15 in data coordinates."""
    aux_tr_box = AuxTransformBox(ax.transData)
    aux_tr_box.add_artist(Ellipse((0, 0), width=0.1, height=0.15))
    box = AnchoredOffsetbox(child=aux_tr_box, loc="lower left", frameon=True)
    ax.add_artist(box)

draw_ellipse(ax)

Ajouter une échelle

Dans cette étape, nous allons ajouter une échelle au graphique en utilisant des Objets Ancrés.

def draw_sizebar(ax):
    """
    Draw a horizontal bar with length of 0.1 in data coordinates,
    with a fixed label center-aligned underneath.
    """
    size = 0.1
    text = r"1$^{\prime}$"
    sizebar = AuxTransformBox(ax.transData)
    sizebar.add_artist(Line2D([0, size], [0, 0], color="black"))
    text = TextArea(text)
    packer = VPacker(
        children=[sizebar, text], align="center", sep=5)  ## separation in points.
    ax.add_artist(AnchoredOffsetbox(
        child=packer, loc="lower center", frameon=False,
        pad=0.1, borderpad=0.5))  ## paddings relative to the legend fontsize.

draw_sizebar(ax)

Afficher le graphique

La dernière étape est d'afficher le graphique.

plt.show()

Sommaire

Dans ce laboratoire, vous avez appris à utiliser les Objets Ancrés dans Matplotlib. Vous avez appris à ajouter du texte, des cercles, des ellipses et des échelles à un graphique en utilisant les Objets Ancrés. Les Objets Ancrés sont un outil puissant qui peut être utilisé pour ajouter des annotations et des légendes à un graphique.