Fonctions de titre et d'étiquettes de Matplotlib
Documentation de référence de Matplotlib
Matplotlib fournit un ensemble de fonctions pour définir les titres de graphiques, les étiquettes d'axes et les suptitres de figure, constituant la base pour rendre les graphiques complets et lisibles.
Fonctions concernées
| Fonction | Objectif | Méthode Axes correspondante |
|---|---|---|
| title() | Définir le titre des axes | ax.set_title() |
| xlabel() / ylabel() | Définir les étiquettes des axes x/y | ax.set_xlabel() / ax.set_ylabel() |
| suptitle() | Définir le suptitre de la figure | fig.suptitle() |
| supxlabel() / supylabel() | Définir les étiquettes des axes x/y au niveau de la figure | fig.supxlabel() / fig.supylabel() |
Définition de fonction
matplotlib.pyplot.title(label, fontdict=None, loc=None, pad=None,
*, y=None, **kwargs)
matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, *,
loc=None, **kwargs)
matplotlib.pyplot.ylabel(ylabel, fontdict=None, labelpad=None, *,
loc=None, **kwargs)
matplotlib.pyplot.suptitle(t, **kwargs)
matplotlib.pyplot.supxlabel(t, **kwargs)
matplotlib.pyplot.supylabel(t, **kwargs)
Paramètres courants
| Paramètre | Description |
|---|---|
| label / xlabel / ylabel / t | Contenu du texte (obligatoire) |
| fontsize / size | Taille de police, par ex., 14, 'large', 'x-large' |
| fontweight / weight | Graisse de police : 'normal', 'bold', 'light' |
| color | Couleur du texte |
| fontdict | Dictionnaire des propriétés de police, par ex., {'fontsize':14, 'color':'blue'} |
| loc | Alignement : 'center' (par défaut), 'left', 'right' |
| pad / labelpad | Marge entre le texte et le bord des axes/du graphique (en points) |
| y (spécifique au titre) | Position verticale du titre (en coordonnées d'axes, 1.0 est le haut) |
AxesLe nommage des méthodes d'objet commence parset_préfixe, tel queax.set_title()、ax.set_xlabel(), qui est l'approche recommandée pour l'interface orientée objet.
Exemples d'utilisation
Exemple 1 : Titre et étiquettes de base
Exemple
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x) * np.exp(-x/5)
fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')
ax.plot(x, y, 'steelblue', linewidth=2)
# Définir le titre (niveau Axes)
ax.set_title('Onde sinusoïdale amortie', fontsize=14, fontweight='bold')
# Définir les étiquettes des axes
ax.set_xlabel('Temps (secondes)', fontsize=12)
ax.set_ylabel('Amplitude (V)', fontsize=12)
ax.grid(True, alpha=0.3)
plt.show()
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x) * np.exp(-x/5)
fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')
ax.plot(x, y, 'steelblue', linewidth=2)
# Définir le titre (niveau Axes)
ax.set_title('Onde sinusoïdale amortie', fontsize=14, fontweight='bold')
# Définir les étiquettes des axes
ax.set_xlabel('Temps (secondes)', fontsize=12)
ax.set_ylabel('Amplitude (V)', fontsize=12)
ax.grid(True, alpha=0.3)
plt.show()
Exemple 2 : Titre global de la figure + étiquettes des axes
Exemple
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
fig, axes = plt.subplots(2, 2, figsize=(10, 8),
layout='constrained')
# Chaque sous-graphique a son propre titre
axes[0, 0].plot(x, np.sin(x)); axes[0, 0].set_title('sin(x)')
axes[0, 1].plot(x, np.cos(x)); axes[0, 1].set_title('cos(x)')
axes[1, 0].plot(x, np.sin(2*x)); axes[1, 0].set_title('sin(2x)')
axes[1, 1].plot(x, np.cos(2*x)); axes[1, 1].set_title('cos(2x)')
# Titre global de la figure
fig.suptitle('Aperçu des fonctions trigonométriques',
fontsize=16, fontweight='bold', y=1.02)
# Étiquettes d'axe au niveau de la figure (centrées sur tous les sous-graphiques)
fig.supxlabel('x (radians)', fontsize=13)
fig.supylabel('Amplitude', fontsize=13)
plt.show()
import numpy as np
x = np.linspace(0, 10, 100)
fig, axes = plt.subplots(2, 2, figsize=(10, 8),
layout='constrained')
# Chaque sous-graphique a son propre titre
axes[0, 0].plot(x, np.sin(x)); axes[0, 0].set_title('sin(x)')
axes[0, 1].plot(x, np.cos(x)); axes[0, 1].set_title('cos(x)')
axes[1, 0].plot(x, np.sin(2*x)); axes[1, 0].set_title('sin(2x)')
axes[1, 1].plot(x, np.cos(2*x)); axes[1, 1].set_title('cos(2x)')
# Titre global de la figure
fig.suptitle('Aperçu des fonctions trigonométriques',
fontsize=16, fontweight='bold', y=1.02)
# Étiquettes d'axe au niveau de la figure (centrées sur tous les sous-graphiques)
fig.supxlabel('x (radians)', fontsize=13)
fig.supylabel('Amplitude', fontsize=13)
plt.show()
Exemple 3 : Position et style du titre
Exemple
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
layout='constrained')
# Graphique de gauche : titre aligné à gauche
ax1.plot(x, np.sin(x), 'steelblue')
ax1.set_title('Titre aligné à gauche',
loc='left', # Aligné à gauche
fontsize=12,
color='steelblue')
ax1.set_xlabel('Axe des X', fontsize=10, color='gray')
# Graphique de droite : titre aligné à droite
ax2.plot(x, np.cos(x), 'coral')
ax2.set_title('Titre aligné à droite',
loc='right', # Aligné à droite
fontsize=12,
color='coral',
fontstyle='italic')
ax2.set_ylabel('Axe Y', fontsize=10, color='gray',
rotation=0, labelpad=20) # Étiquettes non pivotées
plt.show()
import numpy as np
x = np.linspace(0, 10, 100)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
layout='constrained')
# Graphique de gauche : titre aligné à gauche
ax1.plot(x, np.sin(x), 'steelblue')
ax1.set_title('Titre aligné à gauche',
loc='left', # Aligné à gauche
fontsize=12,
color='steelblue')
ax1.set_xlabel('Axe des X', fontsize=10, color='gray')
# Graphique de droite : titre aligné à droite
ax2.plot(x, np.cos(x), 'coral')
ax2.set_title('Titre aligné à droite',
loc='right', # Aligné à droite
fontsize=12,
color='coral',
fontstyle='italic')
ax2.set_ylabel('Axe Y', fontsize=10, color='gray',
rotation=0, labelpad=20) # Étiquettes non pivotées
plt.show()
Exemple 4 : Titre de formule mathématique LaTeX
Exemple
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5, 5, 200)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
layout='constrained')
# Distribution gaussienne
sigma, mu = 1.0, 0.0
y1 = 1/(sigma * np.sqrt(2*np.pi)) * np.exp(-(x-mu)**2/(2*sigma**2))
ax1.plot(x, y1, 'steelblue', linewidth=2)
# Utiliser une formule LaTeX comme titre
ax1.set_title(
r'$f(x) = frac{1}{sigmasqrt{2pi}}'
r'expleft(-frac{(x-mu)^2}{2sigma^2}right)$',
fontsize=12)
# Polynôme
y2 = x**3 - 3*x
ax2.plot(x, y2, 'coral', linewidth=2)
ax2.set_title(r'$f(x) = x^3 - 3x$', fontsize=14)
ax2.axhline(y=0, color='gray', linewidth=0.5)
for ax in [ax1, ax2]:
ax.set_xlabel('x')
ax.grid(True, alpha=0.3)
fig.suptitle('Fonctions avec titres LaTeX', fontsize=14,
fontweight='bold')
plt.show()
print("exemple : titres LaTeX affichés")
import numpy as np
x = np.linspace(-5, 5, 200)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4),
layout='constrained')
# Distribution gaussienne
sigma, mu = 1.0, 0.0
y1 = 1/(sigma * np.sqrt(2*np.pi)) * np.exp(-(x-mu)**2/(2*sigma**2))
ax1.plot(x, y1, 'steelblue', linewidth=2)
# Utiliser une formule LaTeX comme titre
ax1.set_title(
r'$f(x) = frac{1}{sigmasqrt{2pi}}'
r'expleft(-frac{(x-mu)^2}{2sigma^2}right)$',
fontsize=12)
# Polynôme
y2 = x**3 - 3*x
ax2.plot(x, y2, 'coral', linewidth=2)
ax2.set_title(r'$f(x) = x^3 - 3x$', fontsize=14)
ax2.axhline(y=0, color='gray', linewidth=0.5)
for ax in [ax1, ax2]:
ax.set_xlabel('x')
ax.grid(True, alpha=0.3)
fig.suptitle('Fonctions avec titres LaTeX', fontsize=14,
fontweight='bold')
plt.show()
print("exemple : titres LaTeX affichés")
FAQ
Différence entre title() et suptitle() ?
title()(ouax.set_title()): Définit le titre au-dessus d'un seul Axes.
suptitle()(oufig.suptitle()): Définit le titre global en haut de toute la Figure, couvrant tous les sous-graphes.
Comment faire en sorte que le titre prenne en charge le chinois ?
Définir la police :plt.rcParams['font.sans-serif'] = ['SimHei']ouplt.rcParams['font.family'] = 'sans-serif'。
Autres extensions