Placement des épines dans 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 Matplotlib, la position des épines des axes peut être ajustée pour personnaliser l'apparence d'un graphique. Ce laboratoire vous guidera tout au long du processus d'ajustement des positions des épines dans Matplotlib.

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

Importez les bibliothèques nécessaires

Dans cette étape, nous allons importer les bibliothèques nécessaires pour créer nos graphiques.

import matplotlib.pyplot as plt
import numpy as np

Créez un graphique de base

Dans cette étape, nous allons créer un graphique de base pour démontrer les différents options de placement des épines dans Matplotlib.

x = np.linspace(0, 2*np.pi, 100)
y = 2 * np.sin(x)

fig, ax_dict = plt.subplot_mosaic(
    [['center', 'zero'],
     ['axes', 'data']]
)
fig.suptitle('Positions des épines')

ax = ax_dict['center']
ax.set_title("'center'")
ax.plot(x, y)
ax.spines[['left', 'bottom']].set_position('center')
ax.spines[['top', 'right']].set_visible(False)

ax = ax_dict['zero']
ax.set_title("'zero'")
ax.plot(x, y)
ax.spines[['left', 'bottom']].set_position('zero')
ax.spines[['top', 'right']].set_visible(False)

ax = ax_dict['axes']
ax.set_title("'axes' (0,2, 0,2)")
ax.plot(x, y)
ax.spines.left.set_position(('axes', 0,2))
ax.spines.bottom.set_position(('axes', 0,2))
ax.spines[['top', 'right']].set_visible(False)

ax = ax_dict['data']
ax.set_title("'data' (1, 2)")
ax.plot(x, y)
ax.spines.left.set_position(('data', 1))
ax.spines.bottom.set_position(('data', 2))
ax.spines[['top', 'right']].set_visible(False)

Remarque : Dans la dernière partie du code, il semble y avoir une erreur dans la notation des virgules pour les nombres décimaux en français. J'ai corrigé en remplaçant les virgules par des points, mais si c'est une spécificité du contexte, il faudrait ajuster en conséquence.

Définissez une méthode pour ajuster les emplacements des épines

Dans cette étape, nous allons définir une méthode qui ajuste l'emplacement des épines des axes en fonction des emplacements d'épines spécifiés.

def adjust_spines(ax, spines):
    """
    Ajuste l'emplacement des épines des axes en fonction des emplacements d'épines spécifiés.

    Paramètres :
        ax (Axes) : L'objet Axes de Matplotlib pour lequel ajuster les épines.
        spines (liste de str) : Les emplacements d'épines souhaités. Les options valides sont 'left' (gauche), 'right' (droite), 'top' (haut), 'bottom' (bas).

    Retourne :
        None
    """
    for loc, spine in ax.spines.items():
        if loc in spines:
            spine.set_position(('outward', 10))  ## déplacer l'épine vers l'extérieur de 10 points
        else:
            spine.set_color('none')  ## ne pas tracer l'épine

    ## désactiver les graduations là où il n'y a pas d'épine
    if 'left' in spines:
        ax.yaxis.set_ticks_position('left')
    else:
        ax.yaxis.set_ticks([])

    if 'bottom' in spines:
        ax.xaxis.set_ticks_position('bottom')
    else:
        ax.xaxis.set_ticks([])

Créez un graphique à l'aide de la méthode adjust_spines

Dans cette étape, nous allons créer un graphique à l'aide de la méthode adjust_spines pour démontrer comment ajuster les emplacements des épines.

fig = plt.figure()

x = np.linspace(0, 2 * np.pi, 100)
y = 2 * np.sin(x)

ax = fig.add_subplot(2, 2, 1)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, ['left'])

ax = fig.add_subplot(2, 2, 2)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, [])

ax = fig.add_subplot(2, 2, 3)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, ['left', 'bottom'])

ax = fig.add_subplot(2, 2, 4)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, ['bottom'])

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris comment ajuster les positions des épines dans Matplotlib en définissant la position des épines des axes à l'aide de la méthode set_position, et comment définir une méthode pour ajuster les emplacements des épines en fonction des emplacements d'épines souhaités. Cela peut être utile pour personnaliser l'apparence des graphiques et souligner des fonctionnalités spécifiques.