Fondamentaux de la visualisation 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

Dans ce laboratoire, vous allez apprendre à utiliser Matplotlib, une bibliothèque Python pour créer des visualisations, pour créer une figure et annoter son anatomie. Vous allez apprendre à créer une figure, tracer des données, définir les limites des axes, ajouter des étiquettes et des titres, et annoter la figure avec du texte et des marqueurs.

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 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églerons rapidement le problème pour vous.

Importation des bibliothèques et configuration des données

Tout d'abord, nous devons importer les bibliothèques nécessaires et configurer certaines données pour le tracé. Dans cet exemple, nous allons tracer trois ondes sinusoïdales avec du bruit aléatoire ajouté.

import matplotlib.pyplot as plt
import numpy as np

## Configuration des données
np.random.seed(19680801)

X = np.linspace(0.5, 3.5, 100)
Y1 = 3+np.cos(X)
Y2 = 1+np.cos(1+X/0.75)/2
Y3 = np.random.uniform(Y1, Y2, len(X))

Création de la figure et configuration des axes

Ensuite, nous allons créer une figure et configurer les axes. Nous utiliserons la méthode add_axes() pour créer un nouvel ensemble d'axes à l'intérieur de la figure. Nous définirons également les limites des axes x et y et ajouterons des lignes de grille.

## Création de la figure et des axes
fig = plt.figure(figsize=(7.5, 7.5))
ax = fig.add_axes([0.2, 0.17, 0.68, 0.7], aspect=1)

## Définition des limites et des lignes de grille
ax.set_xlim(0, 4)
ax.set_ylim(0, 4)
ax.grid(linestyle="--", linewidth=0.5, color='.25', zorder=-10)

Tracer les données

Maintenant, nous allons tracer nos données sur les axes que nous venons de créer. Nous utiliserons la méthode plot() pour tracer les trois ondes sinusoïdales avec différentes couleurs et largeurs de ligne.

## Tracer les données
ax.plot(X, Y1, c='C0', lw=2.5, label="Blue signal", zorder=10)
ax.plot(X, Y2, c='C1', lw=2.5, label="Orange signal")
ax.plot(X[::3], Y3[::3], linewidth=0, markersize=9,
        marker='s', markerfacecolor='none', markeredgecolor='C4',
        markeredgewidth=2.5)

Ajouter des étiquettes et un titre

Nous allons maintenant ajouter des étiquettes aux axes x et y, et un titre à la figure en utilisant les méthodes set_xlabel(), set_ylabel() et set_title().

## Ajouter des étiquettes et un titre
ax.set_xlabel("x Axis label", fontsize=14)
ax.set_ylabel("y Axis label", fontsize=14)
ax.set_title("Anatomy of a figure", fontsize=20, verticalalignment='bottom')

Ajouter une légende

Nous allons ajouter une légende à la figure en utilisant la méthode legend(). Nous spécifierons également la position et la taille de police de la légende.

## Ajouter une légende
ax.legend(loc="upper right", fontsize=14)

Annoter la figure

Enfin, nous allons annoter la figure pour montrer les noms de divers éléments de Matplotlib en utilisant les méthodes text() et Circle(). Nous utiliserons également la méthode withStroke() pour ajouter un contour blanc au texte et aux marqueurs pour une meilleure visibilité.

## Annoter la figure
from matplotlib.patches import Circle
from matplotlib.patheffects import withStroke

royal_blue = [0, 20/256, 82/256]

def annotate(x, y, text, code):
    ## Marqueur en forme de cercle
    c = Circle((x, y), radius=0.15, clip_on=False, zorder=10, linewidth=2.5,
               edgecolor=royal_blue + [0.6], facecolor='none',
               path_effects=[withStroke(linewidth=7, foreground='white')])
    ax.add_artist(c)

    ## Utiliser path_effects comme arrière-plan pour les textes
    ## Dessiner les path_effects et le texte coloré séparément pour que les
    ## path_effects ne puissent pas découper d'autres textes
    for path_effects in [[withStroke(linewidth=7, foreground='white')], []]:
        color = 'white' if path_effects else royal_blue
        ax.text(x, y-0.2, text, zorder=100,
                ha='center', va='top', weight='bold', color=color,
                style='italic', fontfamily='Courier New',
                path_effects=path_effects)

        color = 'white' if path_effects else 'black'
        ax.text(x, y-0.33, code, zorder=100,
                ha='center', va='top', weight='normal', color=color,
                fontfamily='monospace', fontsize='medium',
                path_effects=path_effects)

annotate(3.5, -0.13, "Minor tick label", "ax.xaxis.set_minor_formatter")
annotate(-0.03, 1.0, "Major tick", "ax.yaxis.set_major_locator")
annotate(0.00, 3.75, "Minor tick", "ax.yaxis.set_minor_locator")
annotate(-0.15, 3.00, "Major tick label", "ax.yaxis.set_major_formatter")
annotate(1.68, -0.39, "xlabel", "ax.set_xlabel")
annotate(-0.38, 1.67, "ylabel", "ax.set_ylabel")
annotate(1.52, 4.15, "Title", "ax.set_title")
annotate(1.75, 2.80, "Line", "ax.plot")
annotate(2.25, 1.54, "Markers", "ax.scatter")
annotate(3.00, 3.00, "Grid", "ax.grid")
annotate(3.60, 3.58, "Legend", "ax.legend")
annotate(2.5, 0.55, "Axes", "fig.subplots")
annotate(4, 4.5, "Figure", "plt.figure")
annotate(0.65, 0.01, "x Axis", "ax.xaxis")
annotate(0, 0.36, "y Axis", "ax.yaxis")
annotate(4.0, 0.7, "Spine", "ax.spines")

Sommaire

Dans ce laboratoire, vous avez appris à utiliser Matplotlib pour créer une figure et annoter son anatomie. Vous avez appris à créer une figure, tracer des données, définir les limites des axes, ajouter des étiquettes et des titres, et annoter la figure avec du texte et des marqueurs. En suivant les étapes de ce laboratoire, vous devriez maintenant avoir une bonne compréhension de la manière d'utiliser Matplotlib pour créer et annoter des figures en Python.