0Pricing
Pandas & NumPy Academy · Leçon

Libellés, titres et enregistrement des figures

Ajoutez les libellés des axes, un titre, une légende et le formatage des graduations, puis enregistrez des figures de qualité éditoriale avec savefig().

Libellés, titres et enregistrement des figures est une leçon Pandas & NumPy Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Pandas & NumPy Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Pandas & NumPy Academy comprend 4 leçons au total.

Du graphique à la publication

Un graphique n'est efficace que si ses axes sont étiquetés, si son titre explique le principal enseignement à retenir et s'il est enregistré avec une résolution suffisamment élevée pour le support auquel il est destiné. Cette leçon présente les dernières touches qui transforment un graphique exploratoire rapide en une figure soignée adaptée à un rapport, un tableau de bord ou une publication universitaire : étiquettes d'axes, formatage des graduations, titres, légendes, annotations et exportation du fichier.

Étiquettes d'axes avec set_xlabel et set_ylabel

Définissez des étiquettes d'axes descriptives avec ax.set_xlabel() et ax.set_ylabel(). Indiquez toujours les unités dans l'étiquette (par exemple, 'Revenue (USD)' plutôt que simplement 'Revenue'). Utilisez fontsize pour agrandir les étiquettes dans les présentations, et labelpad pour ajouter de l'espace entre l'axe et le texte de l'étiquette lorsque les graduations sont volumineuses.

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(7, 4))
x = np.arange(1, 13)
y = np.random.randint(100, 500, 12)
ax.plot(x, y, 'o-', color='steelblue')

ax.set_xlabel('Month', fontsize=12, labelpad=8)
ax.set_ylabel('Revenue (USD thousands)', fontsize=12, labelpad=8)
# plt.show()
plt.close()

Titres avec set_title et suptitle

ax.set_title() définit le titre au-dessus d'un seul axe. Pour les figures à plusieurs panneaux, fig.suptitle() ajoute un titre commun au-dessus de tous les sous-graphiques. Contrôlez la taille de la police avec fontsize et la position verticale avec y (valeur par défaut : 1.0). Un bon titre énonce l'idée principale du graphique, et pas seulement ce que représentent les axes : comparez 'Monthly Revenue' à 'Revenue Peaked in Q3 and Fell 20% in Q4'.

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
ax1.plot([1,2,3], [1,4,9])
ax1.set_title('Subplot One', fontsize=11)

ax2.bar(['A','B','C'], [3,7,2])
ax2.set_title('Subplot Two', fontsize=11)

# Shared figure title
fig.suptitle('Annual Overview Dashboard', fontsize=14, fontweight='bold', y=1.02)
plt.tight_layout()
plt.close()

Contrôler les étiquettes des graduations

Les étiquettes de graduations par défaut de Matplotlib conviennent souvent, mais vous aurez parfois besoin d'étiquettes personnalisées. Utilisez ax.set_xticks() pour définir les positions des graduations et ax.set_xticklabels() pour définir leurs étiquettes. Passez rotation=45 pour incliner les étiquettes longues afin qu'elles ne se chevauchent pas. Le paramètre ha='right' (alignement horizontal) garantit que les étiquettes inclinées s'ancrent correctement sur leur graduation.

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
          'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
values = np.random.randint(200, 600, 12)

fig, ax = plt.subplots(figsize=(9, 4))
ax.bar(range(12), values, color='steelblue')
ax.set_xticks(range(12))
ax.set_xticklabels(months, rotation=45, ha='right', fontsize=10)
ax.set_ylabel('Revenue')
plt.tight_layout()
plt.close()

Formater les valeurs des graduations

Utilisez les formateurs de matplotlib.ticker pour afficher les valeurs des graduations dans un format lisible. FuncFormatter prend une fonction qui reçoit la valeur de la graduation et renvoie une chaîne formatée. Formats courants : séparateur de milliers, symbole monétaire, signe de pourcentage, notation scientifique. Appliquez le formateur avec ax.yaxis.set_major_formatter(formatter).

from matplotlib.ticker import FuncFormatter

def millions_fmt(x, pos):
    return f'${x/1e6:.1f}M'

fig, ax = plt.subplots(figsize=(7, 4))
ax.bar(['Q1', 'Q2', 'Q3', 'Q4'], [1.2e6, 1.8e6, 2.1e6, 1.9e6], color='steelblue')
ax.yaxis.set_major_formatter(FuncFormatter(millions_fmt))
ax.set_title('Quarterly Revenue')
ax.set_ylabel('Revenue')
plt.tight_layout()
plt.close()

Légendes avec ax.legend()

Appelez ax.legend() pour afficher une légende pour tous les éléments du graphique dont le paramètre label a été défini. Personnalisez-la avec loc (position, par exemple 'upper right', 'lower left'), ncol (nombre de colonnes), framealpha (transparence du cadre) et fontsize. Pour placer la légende à l'extérieur de la zone du graphique, utilisez bbox_to_anchor avec loc.

fig, ax = plt.subplots(figsize=(7, 4))
for region, color in [('East','steelblue'),('West','coral'),('North','green')]:
    ax.plot(range(12), np.random.randint(100, 400, 12),
            marker='o', label=region, color=color)

ax.legend(loc='upper right', ncol=1, framealpha=0.8, fontsize=10)
ax.set_title('Monthly Sales by Region')
plt.close()

Ajouter des annotations textuelles

ax.annotate(text, xy=(x_point, y_point), xytext=(x_text, y_text), arrowprops=...) ajoute une étiquette textuelle, avec une flèche facultative pointant vers un point de données précis. Utilisez-le pour mettre en évidence des valeurs maximales, des anomalies ou des événements importants sur un graphique. Le dictionnaire arrowprops contrôle le style de la flèche : arrowstyle='->' crée une flèche simple.

y_vals = np.array([120, 180, 310, 250, 420, 380, 290])
x_vals = np.arange(len(y_vals))
peak_idx = np.argmax(y_vals)

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x_vals, y_vals, 'o-', color='steelblue')
ax.annotate(f'Peak: {y_vals[peak_idx]}',
            xy=(peak_idx, y_vals[peak_idx]),
            xytext=(peak_idx - 2, y_vals[peak_idx] + 30),
            arrowprops={'arrowstyle': '->', 'color': 'red'},
            fontsize=10, color='red')
plt.close()

Ajouter des lignes de référence horizontales et verticales

ax.axhline(y_value) trace une ligne horizontale sur toute la largeur des axes à la valeur y indiquée. ax.axvline(x_value) trace une ligne verticale. Les deux acceptent les paramètres color, linestyle et linewidth. Les lignes de référence servent couramment à marquer des objectifs, des seuils ou des dates d'événements sur les graphiques de séries temporelles.

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(range(10), np.random.randint(100, 400, 10), 'o-', color='steelblue')

# Target line
ax.axhline(y=250, color='red', linestyle='--', lw=1.5, label='Target')

# Event line
ax.axvline(x=5, color='orange', linestyle=':', lw=1.5, label='Campaign start')

ax.legend()
ax.set_title('Revenue vs Target')
plt.close()

Mettre en forme avec des thèmes

Matplotlib comprend plusieurs feuilles de style intégrées qui modifient l'apparence générale de toutes les figures sans changer le code : 'seaborn-v0_8-whitegrid', 'fivethirtyeight', 'ggplot', 'bmh', etc. Appliquez un style avec plt.style.use('style_name') au début de votre script. Utilisez plt.style.context('style_name') comme gestionnaire de contexte pour appliquer un style uniquement dans un bloc.

# Apply a style globally
plt.style.use('seaborn-v0_8-whitegrid')
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(range(10), np.random.randn(10).cumsum())
ax.set_title('Seaborn Whitegrid Style')
plt.close()

# Reset to default
plt.rcdefaults()

Enregistrer des figures avec savefig()

fig.savefig('filename.png') enregistre la figure dans un fichier. Paramètres essentiels : dpi (points par pouce — utilisez 150 pour l'écran et 300 pour l'impression), bbox_inches='tight' (empêche les étiquettes d'être coupées) et format (déduit de l'extension ou indiqué explicitement). Formats courants : '.png' (matriciel, adapté au Web), '.pdf' (vectoriel, adapté à l'impression) et '.svg' (vectoriel, modifiable dans Illustrator).

fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(range(10), np.random.randn(10), 'o-')
ax.set_title('Export Example')
ax.set_xlabel('Step')
ax.set_ylabel('Value')

# Save as PNG (screen quality)
fig.savefig('/tmp/chart_screen.png', dpi=150, bbox_inches='tight')

# Save as PDF (print quality)
fig.savefig('/tmp/chart_print.pdf', dpi=300, bbox_inches='tight')

plt.close()
print('Figures saved.')

Exemple complet : graphique soigné pour un rapport

Voici un flux de travail complet qui combine toutes les techniques de cette leçon : un graphique de série temporelle soigné avec des étiquettes d'axes, des graduations de l'axe y formatées, une ligne horizontale indiquant un objectif, une annotation sur le pic et un export PNG haute résolution. C'est le modèle que vous utiliserez pour tout graphique destiné à un rapport ou à un tableau de bord.

from matplotlib.ticker import FuncFormatter

fig, ax = plt.subplots(figsize=(9, 5))
months = list(range(1, 13))
revenue = [120, 145, 132, 160, 175, 190, 210, 185, 220, 200, 240, 260]
peak = max(revenue)
peak_idx = revenue.index(peak)

ax.plot(months, revenue, 'o-', color='steelblue', lw=2, markersize=6)
ax.axhline(y=180, color='red', ls='--', lw=1.2, label='Target: $180K')
ax.annotate(f'Peak ${peak}K', xy=(peak_idx+1, peak),
            xytext=(peak_idx-1.5, peak+15),
            arrowprops={'arrowstyle': '->'}, fontsize=9)
ax.set_xticks(months)
ax.set_xticklabels(['Jan','Feb','Mar','Apr','May','Jun',
                    'Jul','Aug','Sep','Oct','Nov','Dec'], rotation=45, ha='right')
ax.yaxis.set_major_formatter(FuncFormatter(lambda x,p: f'${x:.0f}K'))
ax.set_title('2024 Monthly Revenue vs Target', fontsize=13, fontweight='bold')
ax.set_ylabel('Revenue')
ax.legend()
plt.tight_layout()
plt.close()

Vérification rapide

Vérifiez votre compréhension des étiquettes, des titres et de l'enregistrement des figures présentés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que set_xlabel()/set_ylabel()/set_title() ajoutent du texte descriptif ; FuncFormatter formate les valeurs des graduations en montants monétaires ou pourcentages ; ax.annotate() ajoute des étiquettes textuelles avec flèche pour mettre en évidence des points de données importants ; axhline()/axvline() tracent des lignes de référence ; et fig.savefig() avec dpi et bbox_inches='tight' produit des exports de qualité publication. Le cours Fondamentaux de Matplotlib est maintenant terminé ; nous allons ensuite découvrir Seaborn pour les graphiques statistiques.

Questions Fréquemment Posées

La leçon « Libellés, titres et enregistrement des figures » est-elle gratuite ?

Oui — le texte complet de « Libellés, titres et enregistrement des figures » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Pandas & NumPy Academy, passe à CoddyKit PRO. Le cours Pandas & NumPy Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Libellés, titres et enregistrement des figures » ?

Ajoutez les libellés des axes, un titre, une légende et le formatage des graduations, puis enregistrez des figures de qualité éditoriale avec savefig(). Tu pratiques Pandas & NumPy Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Pandas & NumPy Academy ?

Aucune expérience préalable n'est requise. Pandas & NumPy Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Libellés, titres et enregistrement des figures » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Pandas & NumPy Academy ?

Oui. Chaque leçon Pandas & NumPy Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Architecture des figures et des axes
  2. Graphiques linéaires et nuages de points
  3. Graphiques en barres et histogrammes
  4. Libellés, titres et enregistrement des figures
← Retour à Pandas & NumPy Academy