Documentation de référence de Matplotlib

Matplotlib est la bibliothèque de visualisation de données la plus largement utilisée en Python, prenant en charge la création de graphiques statiques, animés et interactifs.

Ce document répertorie de manière exhaustive les fonctions et méthodes de toutes les interfaces publiques de Matplotlib, ce qui facilite la consultation rapide de leur fonctionnalité et de leur utilisation.


Deux grandes interfaces de programmation

Matplotlib propose deux styles d'utilisation adaptés à différents scénarios.

Fonctionnalité Interface Axes (explicite/orientée objet) Interface pyplot (implicite/fonctionnelle)
Utilisation Créez d'abord les objets Figure et Axes, puis appelez leurs méthodes Appelez directement les fonctions du module pyplot pour opérer implicitement sur la figure courante
Scénarios applicables Graphiques complexes, multiples sous-graphiques, contrôle fin nécessaire Tracé rapide, exploration interactive, graphiques simples
Exemple de code fig, ax = plt.subplots(); ax.plot(x, y) plt.plot(x, y); plt.title("Title")
Niveau de recommandation Recommandé(Plus clair et plus contrôlable) Adapté aux scénarios simples et au prototypage rapide

L'interface Axes est le style de programmation officiellement recommandé. Sa logique de code est plus claire et moins sujette aux erreurs lors de la gestion de plusieurs sous-graphiques et de graphiques complexes. Pour une référence rapide, ce qui suit liste à la fois les fonctions pyplot et leurs méthodes Axes correspondantes.

FonctionContenu associé
Fonction plot() de Matplotlibplot()
Fonction scatter() de Matplotlibscatter()
Fonction bar() / barh() de Matplotlibbar(), barh(), bar_label(), grouped_bar()
Fonction hist() de Matplotlibhist()
Fonction pie() de Matplotlibpie(), pie_label()
Fonction imshow() de Matplotlibimshow()
Fonction subplots() de Matplotlibsubplots()
Fonction figure() de Matplotlibfigure()
Fonction savefig() de Matplotlibsavefig()
Fonction errorbar() de Matplotliberrorbar()
Fonction boxplot() de Matplotlibboxplot()
Fonction contour() / contourf() de Matplotlibcontour(), contourf(), clabel()
Fonction fill_between() / fill_betweenx() de Matplotlibfill_between(), fill_betweenx()
Fonction legend() de Matplotliblegend()
Fonction text() / annotate() de Matplotlibtext(), annotate()
Fonctions de titre et d'étiquettes de Matplotlibtitle(), xlabel(), ylabel(), suptitle(), supxlabel(), supylabel()
Fonction colorbar() de Matplotlibcolorbar()
Fonctions de gestion des figures et des axes de Matplotlibaxes(), cla(), clf(), close(), delaxes(), fignum_exists(), gca(), gcf(), get_figlabels(), get_fignums(), sca(), subplot(), subplot2grid(), subplot_mosaic(), twinx(), twiny()
Fonctions de traçage avancées de Matplotlibstep(), stem(), eventplot(), stackplot(), broken_barh(), vlines(), hlines(), fill(), loglog(), semilogx(), semilogy()
Fonctions d'étendue et de champ vectoriel de Matplotlibaxhline(), axhspan(), axvline(), axvspan(), axline(), quiver(), quiverkey(), barbs(), streamplot()
Fonctions d'analyse spectrale de Matplotlibacorr(), xcorr(), psd(), csd(), specgram(), cohere(), angle_spectrum(), magnitude_spectrum(), phase_spectrum()
Fonctions de tracé de données 2D et statistiques de Matplotlibhist2d(), hexbin(), stairs(), matshow(), pcolor(), pcolormesh(), spy(), figimage(), ecdf(), violinplot()
Fonctions de triangulation et de coordonnées polaires de Matplotlibtriplot(), tripcolor(), tricontour(), tricontourf(), polar(), rgrids(), thetagrids()
Fonctions de configuration des axes Matplotlibxlim(), ylim(), xscale(), yscale(), xticks(), yticks(), tick_params(), ticklabel_format(), locator_params(), minorticks_on(), minorticks_off(), grid(), axis(), box(), autoscale()
Fonctions de mise en page et de configuration Matplotlibsubplots_adjust(), tight_layout(), margins(), subplot_tool(), rc(), rc_context(), rcdefaults(), clim(), get_cmap(), set_cmap(), gci(), sci(), imread(), imsave(), draw(), ion(), ioff(), pause(), switch_backend(), show(), isinteractive(), install_repl_displayhook(), uninstall_repl_displayhook(), draw_if_interactive()
Fonctions utilitaires et d'interaction Matplotlibconnect(), disconnect(), ginput(), waitforbuttonpress(), findobj(), get(), setp(), getp(), get_current_fig_manager(), new_figure_manager(), set_loglevel(), xkcd()
Fonctions de texte et d'annotation au niveau de la figure Matplotlibfigtext(), figlegend(), table(), arrow()

Module pyplot - Liste complète des fonctions

pyplot est l'interface de haut niveau de Matplotlib, offrant une expérience de tracé similaire à MATLAB. Ci-dessous, toutes les fonctions sont listées selon la catégorisation officielle.

1. Gestion des figures et des axes

Fonctions de création et de gestion des Figures (canevas) et des Axes (systèmes de coordonnées/sous-graphiques).

FonctionDescription
figure()Créer une nouvelle Figure ou activer une Figure existante
subplots()RecommandéCréer une Figure et un ensemble de sous-graphiques Axes
subplot()Ajouter un sous-graphique unique à la Figure actuelle (par indices de ligne et de colonne)
subplot2grid()Créer un sous-graphique à une position spécifiée dans une disposition en grille
subplot_mosaic()Créer des dispositions complexes non uniformes à l'aide de chaînes de libellés
axes()Ajouter un Axes à la Figure actuelle
gca()Obtenir l'objet Axes actuel
gcf()Obtenir l'objet Figure actuel
sca()Définir les Axes actuels
cla()Effacer les Axes actuels
clf()Effacer la Figure actuelle
close()Fermer les fenêtres Figure
delaxes()Supprimer un Axes spécifié de la Figure
fignum_exists()Vérifie si une Figure avec le numéro spécifié existe
get_figlabels()Renvoie la liste des étiquettes de toutes les Figures
get_fignums()Renvoie la liste des numéros de toutes les Figures
twinx()Crée des axes y jumeaux partageant l'axe x
twiny()Crée des axes x jumeaux partageant l'axe y

2. Tracé de base

Les fonctions de tracé les plus couramment utilisées pour les types de graphiques.

FonctionDescription
plot()Tracer un graphique linéaire (le plus couramment utilisé)
scatter()Tracer un nuage de points, avec prise en charge du mappage taille/couleur/alpha
bar()Tracer un diagramme à barres verticales
barh()Tracer un diagramme à barres horizontales
bar_label()Ajouter des étiquettes numériques sur les barres d'un diagramme à barres
grouped_bar()Tracer un diagramme à barres groupées
pie()Tracer un diagramme circulaire
pie_label()Ajouter des étiquettes sur un diagramme circulaire
stem()Tracer un diagramme à tiges (diagramme en allumettes)
eventplot()Tracer un diagramme d'événements (plusieurs lignes horizontales marquant la position des événements)
step()Tracer un graphique en escalier
fill()Tracer un polygone rempli
fill_between()Remplir la zone entre deux courbes horizontales
fill_betweenx()Remplir l’aire entre deux courbes verticales
stackplot()Tracer un diagramme en aires empilées
broken_barh()Tracer un diagramme à barres brisées horizontal (style diagramme de Gantt)
vlines()Tracer une ligne de référence verticale
hlines()Tracer une ligne de référence horizontale
errorbar()Tracer un graphique linéaire avec barres d’erreur
loglog()Graphique linéaire log-log
semilogx()Tracé de courbe avec axe des x logarithmique
semilogy()Tracé de courbe avec axe des y logarithmique
polar()Tracé en coordonnées polaires

3. Étendues

Tracez des lignes de référence horizontales et verticales et des régions ombrées.

FonctionDescription
axhline()Ajouter une ligne horizontale couvrant toute la zone Axes
axhspan()Ajouter une bande ombrée horizontale couvrant toute la zone Axes
axvline()Ajouter une ligne verticale couvrant l'ensemble des Axes
axvspan()Ajouter une bande verticale ombrée couvrant l'ensemble des Axes
axline()Ajouter une ligne infinie passant par deux points

4. Analyse spectrale

Fonctions pour le traitement du signal et la visualisation spectrale.

FonctionDescription
acorr()Tracer l'autocorrélation
xcorr()Tracer la corrélation croisée
angle_spectrum()Tracer le spectre d'angle
magnitude_spectrum()Tracer le spectre d'amplitude
phase_spectrum()Tracer le spectre de phase
psd()Tracer la densité spectrale de puissance
csd()Tracer la densité spectrale croisée
cohere()Tracer la cohérence
specgram()Tracer un spectrogramme (diagramme temps-fréquence)

5. Graphiques statistiques

Tracer des graphiques liés aux distributions statistiques.

FonctionDescription
boxplot()Tracer un diagramme en boîte
violinplot()Tracer un diagramme en violon
ecdf()Tracer la fonction de répartition empirique (ECDF)

6. Discrétisation et histogrammes

FonctionDescription
hist()Tracer un histogramme unidimensionnel
hist2d()Tracer un histogramme bidimensionnel
hexbin()Tracer un graphique hexbin
stairs()Tracer un histogramme en escalier (nouvelle version, remplace le mode step de hist)

7. Contours

FonctionDescription
contour()Tracer des courbes de niveau
contourf()Tracer des contours remplis
clabel()Ajouter des étiquettes aux contours

8. Tableaux 2D et images

Fonctions de visualisation pour afficher des données 2D, des matrices et des images.

FonctionDescription
imshow()Afficher une image ou un tableau 2D (carte de chaleur)
matshow()Afficher une matrice sous forme d'image dans une nouvelle Figure
pcolor()Dessiner un maillage en pseudo-couleur (crée une PolyCollection)
pcolormesh()Dessiner un maillage en pseudo-couleur (crée un QuadMesh, de meilleures performances)
spy()Dessiner le motif des éléments non nuls d'une matrice creuse
figimage()Placez une image au niveau de la Figure (et non des Axes)

9. Grilles triangulaires non structurées

FonctionDescription
triplot()Tracer une grille triangulaire non structurée
tripcolor()Tracer un graphique en pseudocouleurs sur une grille triangulaire
tricontour()Tracer des courbes de niveau sur une grille triangulaire
tricontourf()Tracer des courbes de niveau remplies sur une grille triangulaire

10. Texte et annotations

FonctionDescription
text()Ajouter du texte aux coordonnées spécifiées dans les Axes
figtext()Ajouter du texte à une position spécifiée dans la Figure
annotate()Ajouter une annotation avec une flèche
arrow()Ajouter une flèche
legend()Ajouter une légende dans Axes
figlegend()Ajouter une légende au niveau de la Figure
table()Ajouter un tableau dans Axes

11. Champs vectoriels

FonctionDescription
quiver()Tracer un champ de vecteurs (diagramme quiver)
quiverkey()Ajouter une clé de légende à un champ de vecteurs
barbs()Tracer un diagramme de barbules (indiquant la vitesse et la direction du vent en météorologie)
streamplot()Tracer un diagramme de lignes de courant

12. Configuration des axes

Fonctions pour définir les limites, graduations, étiquettes et échelles des axes.

FonctionDescription
title()Définir le titre des axes
suptitle()Définir le titre global de la Figure
xlabel()Définir l'étiquette de l'axe des x
ylabel()Définir l'étiquette de l'axe des y
xlim()Obtenir ou définir la plage de l'axe des x
ylim()Obtenir ou définir la plage de l'axe des y
xscale()Définir l'échelle de l'axe des x (linear/log/symlog/logit...)
yscale()Définir l’échelle de l’axe y (linear/log/symlog/logit...)
xticks()Obtenir ou définir les positions et libellés des graduations de l’axe x
yticks()Obtenir ou définir les positions et libellés des graduations de l’axe y
tick_params()Ajuster l’apparence des graduations (direction, couleur, taille, rotation des libellés, etc.)
ticklabel_format()Définir le format des libellés de graduation (notation scientifique, etc.)
locator_params()Contrôler les paramètres du localisateur de graduations
minorticks_on()Afficher les graduations secondaires
minorticks_off()Masquer les graduations secondaires
rgrids()Obtenir ou définir les lignes de grille radiales d'un graphique polaire
thetagrids()Obtenir ou définir les lignes de grille angulaires d'un graphique polaire
grid()Activer ou désactiver les lignes de grille
axis()Fonction utilitaire pour obtenir ou définir certaines propriétés de l'axe
box()Activer ou désactiver les contours des axes
autoscale()Mettre automatiquement à l'échelle les axes pour les adapter aux données

13. Disposition

Fonctions pour contrôler la disposition et l'espacement des sous-graphiques.

FonctionDescription
subplots_adjust()Ajuster manuellement l'espacement des sous-graphiques (left/right/top/bottom/wspace/hspace)
tight_layout()Ajuster automatiquement les paramètres des sous-graphiques pour obtenir une disposition compacte
margins()Définir ou obtenir les marges de données des axes
subplot_tool()Lancer la fenêtre interactive de l'outil d'ajustement des sous-graphiques

14. Palette de couleurs

Fonctions liées aux palettes de couleurs et aux barres de couleur.

FonctionDescription
colorbar()Ajouter une barre de couleur
clim()Définir la plage de données de la palette de couleurs
get_cmap()Obtenir un objet de palette de couleurs par le nom spécifié
set_cmap()Définir la palette de couleurs par défaut
gci()Obtenir l'objet image mappable en couleurs actuel
sci()Définir l’objet image actuellement mappable en couleurs
imread()Lire une image depuis un fichier dans un tableau
imsave()Enregistrer un tableau sous forme de fichier image
colormapsObjet registre de palettes de couleurs
color_sequencesObjet registre de séquences de couleurs

15. Configuration

Fonctions de gestion des paramètres de configuration globale de Matplotlib.

FonctionDescription
rc()Définir les paramètres rc (peuvent être définis en lot)
rc_context()Gestionnaire de contexte pour définir temporairement les paramètres rc
rcdefaults()Restaurer tous les paramètres rc à leurs valeurs par défaut

16. Sortie et interaction

Fonctions pour contrôler l'affichage, l'enregistrement et les modes d'interaction des figures.

FonctionDescription
show()Afficher toutes les Figures ouvertes
savefig()Enregistrer la Figure actuelle dans un fichier
draw()Forcer un nouveau rendu de la Figure actuelle
draw_if_interactive()Afficher la Figure si le mode interactif est activé
pause()Mettre en pause pendant le nombre de secondes spécifié (en traitant les événements pendant ce temps)
ion()Activer le mode interactif
ioff()Désactiver le mode interactif
isinteractive()Renvoie si l'on est actuellement en mode interactif
install_repl_displayhook()Installer un hook d'affichage REPL (pour que les Figures s'affichent automatiquement)
uninstall_repl_displayhook()Désinstaller le hook d'affichage du REPL
switch_backend()Changer de backend

17. Autres fonctions utilitaires

FonctionDescription
connect()Lier une fonction de rappel d'événement
disconnect()Dissocier une fonction de rappel d'événement
ginput()Obtenir des points de coordonnées via des clics de souris
waitforbuttonpress()Attendre une pression de la souris ou du clavier et renvoyer le type d'événement
findobj()Trouver les objets Artist correspondant à la condition spécifiée
get()Obtenir la valeur de la propriété d'un objet Artist
getp()Obtenir les propriétés d'un objet Artist (alias de get)
setp()Définir les propriétés d'un objet Artist
get_current_fig_manager()Obtenir le gestionnaire de fenêtre de la Figure actuelle
new_figure_manager()Créer un nouveau gestionnaire de Figure pour la Figure spécifiée
set_loglevel()Définir le niveau de journalisation de Matplotlib
xkcd()Passer au style xkcd (bande dessinée dessinée à la main)

Objet Axes - Liste complète des méthodes

Axes (objet Axes) représente un sous-graphique au sein d'une Figure, contenant des données, des graduations, des étiquettes, des titres, etc. Ci-dessous se trouve une liste complète de toutes les méthodes organisées par catégories officielles.

1. Méthodes de tracé de base

MéthodeDescription
Axes.plot()Tracé de courbe
Axes.scatter()Nuage de points
Axes.bar()Diagramme à barres verticales
Axes.barh()Diagramme à barres horizontales
Axes.bar_label()Ajouter des étiquettes de valeur sur les barres
Axes.grouped_bar()Diagramme à barres groupées
Axes.pie()Diagramme circulaire
Axes.pie_label()Étiquettes de diagramme circulaire
Axes.stem()Diagramme à tiges
Axes.eventplot()Diagramme d'événements
Axes.step()Graphique en escalier
Axes.fill()Polygone rempli
Axes.fill_between()Région remplie horizontale
Axes.fill_betweenx()Région remplie verticale
Axes.stackplot()Diagramme en aires empilées
Axes.broken_barh()Diagramme à barres brisées horizontal
Axes.vlines()Ligne de référence verticale
Axes.hlines()Ligne de référence horizontale
Axes.errorbar()Tracé de courbe avec barres d'erreur
Axes.loglog()Échelle log-log
Axes.semilogx()Échelle logarithmique de l'axe des x
Axes.semilogy()échelle logarithmique de l'axe y

2. Méthodes d'étendue

MéthodeDescription
Axes.axhline()Ligne de référence horizontale
Axes.axvline()Ligne de référence verticale
Axes.axhspan()Bande ombrée horizontale
Axes.axvspan()Bande ombrée verticale
Axes.axline()Ligne infinie passant par deux points

3. Méthodes d'analyse spectrale

MéthodeDescription
Axes.acorr()Graphique d'autocorrélation
Axes.xcorr()Graphique de corrélation croisée
Axes.angle_spectrum()Spectre d'angle
Axes.magnitude_spectrum()Spectre d'amplitude
Axes.phase_spectrum()Spectre de phase
Axes.psd()Densité spectrale de puissance
Axes.csd()Densité spectrale croisée
Axes.cohere()Cohérence
Axes.specgram()Spectrogramme (graphique temps-fréquence)

4. Méthodes statistiques

MéthodeDescription
Axes.boxplot()Diagramme en boîte
Axes.bxp()Tracer un diagramme en boîte à partir de statistiques précalculées
Axes.violinplot()Diagramme en violon
Axes.violin()Tracer un diagramme en violon à partir de statistiques précalculées
Axes.ecdf()Fonction de répartition empirique

5. Méthodes de regroupement en classes et d'histogrammes

MéthodeDescription
Axes.hist()Histogramme
Axes.hist2d()Histogramme 2D
Axes.hexbin()Diagramme de compartiments hexagonaux
Axes.stairs()Histogramme en escalier

6. Méthodes de contour

MéthodeDescription
Axes.contour()Contour
Axes.contourf()Contour rempli
Axes.clabel()Étiquettes de contour

7. Méthodes de tableau 2D

MéthodeDescription
Axes.imshow()Afficher une image/carte thermique
Axes.matshow()Image matricielle
Axes.pcolor()Maillage en pseudo-couleurs (PolyCollection)
Axes.pcolorfast()Pseudo-couleur rapide (dessinée avec imshow)
Axes.pcolormesh()Maillage en pseudo-couleurs (QuadMesh, recommandé)
Axes.spy()Motif de matrice creuse

8. Méthodes pour grille triangulaire non structurée

MéthodeDescription
Axes.triplot()Lignes de grille triangulaire
Axes.tripcolor()Pseudocouleur de grille triangulaire
Axes.tricontour()Contour de grille triangulaire
Axes.tricontourf()Contour rempli de grille triangulaire

9. Méthodes de texte et d'annotation

MéthodeDescription
Axes.text()Ajouter du texte
Axes.annotate()Ajouter une annotation avec une flèche
Axes.table()Ajouter un tableau
Axes.arrow()Ajouter une flèche
Axes.inset_axes()Créer un encart d'axes dans Axes
Axes.indicate_inset()Marquer la région de l'encart d'axes sur l'Axes parent
Axes.indicate_inset_zoom()Marquer la région zoomée de l'encart d'axes
Axes.secondary_xaxis()Ajouter un axe des x secondaire (afficher les mêmes données à un autre emplacement)
Axes.secondary_yaxis()Ajouter un axe y secondaire

10. Méthodes de champ vectoriel

MéthodeDescription
Axes.quiver()Champ vectoriel (diagramme de quiver)
Axes.quiverkey()Barre d'échelle de la légende du champ vectoriel
Axes.barbs()Diagramme de barbules de vent
Axes.streamplot()Tracé de lignes de courant

11. Méthodes d'effacement

MéthodeDescription
Axes.cla()Effacer tout le contenu des Axes
Axes.clear()Effacer les Axes (identique à cla())

12. Méthodes d'apparence

MéthodeDescription
Axes.axis()Définir la visibilité ou les limites des axes
Axes.set_axis_off()Masquer les axes
Axes.set_axis_on()Afficher les axes
Axes.set_frame_on()Afficher le cadre des Axes
Axes.get_frame_on()Renvoie si le cadre est visible
Axes.set_axisbelow()Définit si la grille/les graduations sont sous les données
Axes.get_axisbelow()Renvoie le niveau de la grille/des graduations
Axes.grid()Définit les lignes de grille
Axes.get_facecolor()Renvoie la couleur d'arrière-plan des axes
Axes.set_facecolor()Définit la couleur d'arrière-plan des axes

13. Cycle des propriétés

MéthodeDescription
Axes.set_prop_cycle()Définir le cycle de propriétés telles que la couleur de ligne / le style de ligne

14. Contrôle des axes et des graduations

Accès aux axes :

MéthodeDescription
Axes.xaxis / Axes.yaxisObtenir l'objet Axis de l'axe x/y (propriété)
Axes.get_xaxis() / get_yaxis()Obtenir l'objet Axis de l'axe x/y

Limites et direction de l'axe :

MéthodeDescription
Axes.set_xlim() / get_xlim()Définir/obtenir la plage de l'axe x
Axes.set_ylim() / get_ylim()Définir/obtenir la plage de l'axe y
Axes.set_xbound() / get_xbound()Définir/obtenir les limites inférieure et supérieure de l'axe x
Axes.set_ybound() / get_ybound()Définir/obtenir les limites inférieure et supérieure de l'axe y
Axes.invert_xaxis()Inverser la direction de l'axe x
Axes.invert_yaxis()Inverser la direction de l'axe y
Axes.xaxis_inverted() / yaxis_inverted()Vérifier si l'axe est inversé
Axes.set_xinverted() / get_xinverted()Définir/obtenir si l'axe des x est inversé
Axes.set_yinverted() / get_yinverted()Définir/obtenir si l'axe des y est inversé
Axes.update_datalim()Étendre les limites des données avec de nouveaux points de données

Étiquettes d'axes et légende :

MéthodeDescription
Axes.set_xlabel() / get_xlabel()Définir/obtenir l'étiquette de l'axe des x
Axes.set_ylabel() / get_ylabel()Définir/obtenir l'étiquette de l'axe des y
Axes.label_outer()Conserver les étiquettes de graduation uniquement sur les sous-graphiques les plus externes
Axes.set_title() / get_title()Définir/obtenir le titre des Axes
Axes.legend()Ajouter une légende
Axes.get_legend()Obtenir l'objet légende actuel
Axes.get_legend_handles_labels()Obtenir les poignées et les étiquettes de la légende

Échelle de l'axe :

MéthodeDescription
Axes.set_xscale() / get_xscale()Définir/obtenir l'échelle de l'axe des x
Axes.set_yscale() / get_yscale()Définir/obtenir l'échelle de l'axe y

Mise à l'échelle automatique et marges :

MéthodeDescription
Axes.autoscale()Mettre à l'échelle automatiquement la vue pour l'adapter aux données
Axes.autoscale_view()Mettre à l'échelle automatiquement la vue uniquement (sans modifier les marges)
Axes.margins()Définir ou obtenir les marges des données
Axes.relim()Recalculer les limites des données en fonction de l'Artist actuel
Axes.use_sticky_edges()Utiliser des marges collantes
Axes.set_xmargin() / get_xmargin()Définir/obtenir la marge de l'axe des x
Axes.set_ymargin() / get_ymargin()Définir/obtenir la marge de l'axe des y
Axes.set_autoscale_on() / get_autoscale_on()Définir/obtenir si la mise à l'échelle automatique est activée
Axes.set_autoscalex_on() / get_autoscalex_on()Définir/obtenir si l'axe des x est mis à l'échelle automatiquement
Axes.set_autoscaley_on() / get_autoscaley_on()Définir/obtenir si l'axe des y est mis à l'échelle automatiquement

Rapport d'aspect :

MéthodeDescription
Axes.set_aspect() / get_aspect()Définir/obtenir le rapport d'aspect des axes ('equal'/'auto'/valeur numérique)
Axes.set_box_aspect() / get_box_aspect()Définir/obtenir le rapport d'aspect de la boîte des Axes
Axes.apply_aspect()Appliquer les paramètres actuels du rapport d'aspect
Axes.set_adjustable() / get_adjustable()Définir/obtenir la direction ajustable ('box'/'datalim')

Graduations et étiquettes de graduation :

MéthodeDescription
Axes.set_xticks() / get_xticks()Définir/obtenir les positions des graduations de l'axe x
Axes.set_yticks() / get_yticks()Définir/obtenir les positions des graduations de l'axe y
Axes.set_xticklabels() / get_xticklabels()Définir/obtenir les libellés des graduations de l'axe x
Axes.set_yticklabels() / get_yticklabels()Définir/obtenir les libellés des graduations de l'axe y
Axes.get_xmajorticklabels()Obtenir les libellés des graduations principales de l'axe x
Axes.get_xminorticklabels()Obtenir les libellés des graduations secondaires de l'axe x
Axes.get_ymajorticklabels()Obtenir les libellés des graduations principales de l'axe y
Axes.get_yminorticklabels()Obtenir les étiquettes des graduations secondaires de l'axe y
Axes.get_xgridlines()Obtenir les lignes de grille de l'axe x
Axes.get_ygridlines()Obtenir les lignes de grille de l'axe y
Axes.get_xticklines()Obtenir les lignes de graduation de l'axe x
Axes.get_yticklines()Obtenir les lignes de graduation de l'axe y
Axes.xaxis_date()Définir les graduations de l'axe x au format date
Axes.yaxis_date()Définir les graduations de l’axe y au format date
Axes.minorticks_on()Afficher les graduations secondaires
Axes.minorticks_off()Masquer les graduations secondaires
Axes.ticklabel_format()Définir le format des étiquettes de graduation
Axes.tick_params()Ajuster les paramètres d’apparence des graduations
Axes.locator_params()Contrôler les paramètres du localisateur de graduations

15. Unités

MéthodeDescription
Axes.convert_xunits()Convertir les valeurs x à l’aide d’un convertisseur d’unités
Axes.convert_yunits()Convertir les valeurs y à l'aide d'un convertisseur d'unités
Axes.have_units()Vérifier si un convertisseur d'unités est enregistré

16. Ajout d'Artistes

MéthodeDescription
Axes.add_artist()Ajouter n'importe quel objet Artist
Axes.add_child_axes()Ajouter des Axes enfants
Axes.add_collection()Ajouter un objet Collection
Axes.add_container()Ajouter un objet Container
Axes.add_image()Ajouter un objet AxesImage
Axes.add_line()Ajouter un objet Line2D
Axes.add_patch()Ajouter un objet Patch
Axes.add_table()Ajouter un objet Table

17. Axes jumeaux et axes partagés

MéthodeDescription
Axes.twinx()Créer un axe y jumeau partageant l'axe des x
Axes.twiny()Créer un axe x jumeau partageant l'axe y
Axes.sharex()Partager l'axe x avec un autre Axes
Axes.sharey()Partager l'axe y avec un autre Axes
Axes.get_shared_x_axes()Obtenir l'objet Grouper pour les axes x partagés
Axes.get_shared_y_axes()Obtenir l'objet Grouper pour les axes y partagés

18. Position des Axes

MéthodeDescription
Axes.get_position() / set_position()Obtenir/définir la position et la taille des Axes dans la Figure
Axes.get_anchor() / set_anchor()Obtenir/définir le point d'ancrage (position fixe) des Axes
Axes.get_axes_locator() / set_axes_locator()Obtenir/définir la fonction de rappel du localisateur des Axes
Axes.get_subplotspec() / set_subplotspec()Obtenir/définir l'objet SubplotSpec
Axes.reset_position()Réinitialiser la position des Axes à sa valeur d'origine

19. Asynchrone/Événements

MéthodeDescription
Axes.staleIndique si l'Artist doit être redessiné (propriété)
Axes.pchanged()Marquer un événement de changement de propriété
Axes.add_callback()Ajouter une fonction de rappel de changement de propriété
Axes.remove_callback()Supprimer une fonction de rappel de changement de propriété

20. Interaction

MéthodeDescription
Axes.can_pan() / can_zoom()Renvoie si le déplacement/zoom est activé
Axes.set_navigate() / get_navigate()Définir/obtenir si la barre d'outils de navigation est active
Axes.set_navigate_mode() / get_navigate_mode()Définir/obtenir le mode de navigation
Axes.start_pan() / drag_pan() / end_pan()Début/glisser/fin de l'opération de panoramique
Axes.format_coord()Formate la chaîne de coordonnées affichée dans la barre d'outils
Axes.format_cursor_data()Formate la valeur de données à la position du curseur
Axes.format_xdata() / format_ydata()Formate les valeurs de données x/y
Axes.mouseover()Détermine si la souris survole les Axes
Axes.in_axes()Détermine si un point est à l'intérieur des Axes
Axes.contains() / contains_point()Déterminer si l'Artist contient un point
Axes.get_cursor_data()Obtenir les données à la position du curseur
Axes.get_forward_navigation_events() / set_forward_navigation_events()Obtenir/définir la transmission des événements de navigation

21. Requête sur les Artist enfants

MéthodeDescription
Axes.get_children()Obtenir tous les Artist enfants
Axes.get_images()Obtenir tous les objets image
Axes.get_lines()Obtenir tous les objets de ligne
Axes.findobj()Trouver les Artists enfants correspondant aux conditions

22. Dessin

MéthodeDescription
Axes.draw()Effectuer le rendu des Axes
Axes.draw_artist()Dessiner un seul Artist (méthode de bas niveau)
Axes.redraw_in_frame()Redessiner dans la frame
Axes.get_window_extent()Obtenir les limites des Axes dans la fenêtre d'affichage
Axes.get_tightbbox()Obtenir la boîte englobante serrée des Axes
Axes.get_rasterization_zorder() / set_rasterization_zorder()Obtenir/définir le seuil de zorder de rastérisation

23. Projection (à redéfinir par les sous-classes)

MéthodeDescription
Axes.nameNom de la projection (par exemple, 'rectilinear', 'polar')
Axes.get_xaxis_transform() / get_yaxis_transform()Obtenir la transformation de l'axe x/y
Axes.get_data_ratio()Obtenir le rapport d'aspect des données
Axes.get_xaxis_text1_transform()transformation de l'étiquette inférieure de l'axe des x
Axes.get_xaxis_text2_transform()transformation de l'étiquette supérieure de l'axe des x
Axes.get_yaxis_text1_transform()transformation de l'étiquette gauche de l'axe des y
Axes.get_yaxis_text2_transform()transformation de l'étiquette droite de l'axe des y

24. Autres méthodes

MéthodeDescription
Axes.set()Définir les propriétés par lots
Axes.zorderObtenir/définir zorder (propriété)
Axes.get_figure()Obtenir l’objet Figure propriétaire
Axes.figureObjet Figure propriétaire (propriété)
Axes.remove()Se retirer de la Figure
Axes.has_data()Vérifier s’il y a des données
Axes.get_default_bbox_extra_artists()Obtenir les artistes à inclure en plus dans le calcul de la boîte englobante
Axes.get_transformed_clip_path_and_affine()Obtenir le chemin de découpe transformé
Axes.viewLimPlage de vue (propriété)
Axes.dataLimPlage de données (propriété)
Axes.spinesDictionnaire des lignes de bordure (propriété)

Objet Figure - Liste complète des méthodes

La Figure est le conteneur de premier niveau de l'ensemble du graphique, gérant tous les Axes, Artists et la mise en page.

1. Ajout d'Axes et de SubFigures

MéthodeDescription
Figure.subplots()RecommandéCréer une grille de sous-graphiques Axes
Figure.add_subplot()Ajouter un sous-graphique unique par position de ligne et de colonne
Figure_axes()Ajouter des Axes à une position et une taille
Figure.subplot_mosaic()Créer des arrangements complexes de sous-graphiques à l'aide d'une disposition d'étiquettes
Figure.add_gridspec()Ajouter un objet de disposition GridSpec
Figure.subfigures()Créer une sous-Figure imbriquée
Figure.add_subfigure()Ajouter une seule SubFigure
Figure.axesListe des Axes (propriété)
Figure.get_axes()Obtenir tous les Axes
Figure.delaxes()Supprimer l'Axes spécifié

2. Sauvegarde

MéthodeDescription
Figure.savefig()Enregistrer la Figure dans un fichier

3. Annotations au niveau de la Figure

MéthodeDescription
Figure.suptitle() / get_suptitle()Définir/obtenir le titre principal de la Figure
Figure.supxlabel() / get_supxlabel()Définir/obtenir le libellé x au niveau de la Figure
Figure.supylabel() / get_supylabel()Définir/obtenir le libellé y au niveau de la Figure
Figure.colorbar()Ajouter une barre de couleur
Figure.legend()Ajouter une légende globale
Figure.text()Ajouter du texte au niveau de la Figure
Figure.align_labels()Aligner les libellés d'axes de tous les sous-graphes
Figure.align_xlabels()Aligner les libellés de l'axe x de tous les sous-graphes
Figure.align_ylabels()Aligner les étiquettes de l'axe des y de tous les sous-graphiques
Figure.align_titles()Aligner les titres de tous les sous-graphiques
Figure.autofmt_xdate()Faire pivoter automatiquement les étiquettes de graduation de date

4. Géométrie de la figure

MéthodeDescription
Figure.set_size_inches() / get_size_inches()Définir/obtenir la taille de la figure (en pouces)
Figure.set_figheight() / get_figheight()Définir/obtenir la hauteur de la figure
Figure.set_figwidth() / get_figwidth()Définir/obtenir la largeur de la Figure
Figure.dpiRésolution DPI (propriété)
Figure.set_dpi() / get_dpi()Définir/obtenir DPI

5. Disposition des sous-graphiques

MéthodeDescription
Figure.subplots_adjust()Ajuster manuellement l'espacement des sous-graphiques
Figure.set_layout_engine()Définir le moteur de mise en page ('constrained'/'compressed'/'none')
Figure.get_layout_engine()Obtenir le moteur de mise en page actuel
Figure.tight_layout()Disposition compacte automatique (n'est plus recommandée)
Figure.set_tight_layout() / get_tight_layout()Définir/obtenir tight_layout (n'est plus recommandé)
Figure.set_constrained_layout() / get_constrained_layout()Définir/obtenir constrained_layout (n'est plus recommandé)
Figure.set_constrained_layout_pads() / get_constrained_layout_pads()Définir/obtenir les marges de constrained_layout (n'est plus recommandé)

6. Interaction

MéthodeDescription
Figure.ginput()Obtenir des points de coordonnées via des clics de souris
Figure.waitforbuttonpress()Attendre une pression de la souris ou du clavier
Figure.pick()Événement de sélection
Figure.add_axobserver()Ajouter un observateur d'Axes

7. Modification de l'apparence

MéthodeDescription
Figure.set_frameon() / get_frameon()Définir/obtenir si l'arrière-plan de la Figure est visible
Figure.set_linewidth() / get_linewidth()Définir/obtenir la largeur de la bordure de la Figure
Figure.set_facecolor() / get_facecolor()Définir/obtenir la couleur d'arrière-plan de la Figure
Figure.set_edgecolor() / get_edgecolor()Définir/obtenir la couleur de bordure de la Figure

8. Ajout et récupération d'Artists

MéthodeDescription
Figure.add_artist()Ajouter n'importe quel Artist
Figure.figimage()Placer une image au niveau de la Figure
Figure.get_children()Obtenir tous les Artist enfants

9. Gestion de l'état

MéthodeDescription
Figure.clear()Effacer la Figure
Figure.gca()Obtenir les Axes actuels
Figure.sca()Définir les Axes actuels
Figure.show()Afficher la Figure
Figure.draw()Effectuer le rendu de la Figure
Figure.draw_artist()Dessiner un seul Artist
Figure.draw_without_rendering()Calculer la disposition sans effectuer le rendu (pour obtenir des informations sur la taille)
Figure.set_canvas()Définir le canevas
Figure.get_tightbbox()Obtenir la boîte englobante serrée de la Figure
Figure.get_window_extent()Obtenir les limites de la Figure dans la fenêtre d'affichage

10. Fonctions utilitaires

FonctionDescription
figaspect()Calculer la taille de la Figure en fonction du rapport d'aspect spécifié

Objet SubFigure - Liste des méthodes

SubFigure est une figure enfant logique imbriquée dans la Figure parente, avec des méthodes similaires à Figure.

Ajout d'Axes

MéthodesDescription
SubFigure.subplots()Créer une grille de sous-graphiques
SubFigure.add_subplot()Ajouter un seul sous-graphique
SubFigure.add_axes()Ajouter des Axes à une position spécifiée
SubFigure.subplot_mosaic()Étiqueter les sous-graphiques de disposition
SubFigure.add_gridspec()Ajouter GridSpec
SubFigure.subfigures()Créer une SubFigure imbriquée plus profondément
SubFigure.add_subfigure()Ajouter une seule SubFigure
SubFigure.delaxes()Supprimer des Axes

Annotations

MéthodesDescription
SubFigure.suptitle() / get_suptitle()Titre global de SubFigure
SubFigure.supxlabel() / get_supxlabel()Libellé de l'axe x de SubFigure
SubFigure.supylabel() / get_supylabel()Libellé de l'axe y de SubFigure
SubFigure.colorbar()Barre de couleurs
SubFigure.legend()Légende
SubFigure.text()Texte
SubFigure.align_labels()Aligner les étiquettes
SubFigure.align_xlabels() / align_ylabels()Aligner les étiquettes x/y
SubFigure.align_titles()Aligner les titres

Artist et apparence

MéthodesDescription
SubFigure.add_artist()Ajouter un Artist
SubFigure.get_children()Obtenir l'Artist enfant
SubFigure.set_frameon() / get_frameon()Définir/Obtenir la bordure
SubFigure.set_linewidth() / get_linewidth()Définir/Obtenir la largeur de ligne
SubFigure.set_facecolor() / get_facecolor()Définir/Obtenir la couleur d'arrière-plan
SubFigure.set_edgecolor() / get_edgecolor()Définir/Obtenir la couleur de bordure
SubFigure.set_dpi() / get_dpi()Définir/Obtenir le DPI

Référence rapide de configuration du style

Feuilles de style intégrées

Viaplt.style.use('name')changer de style.

Nom du styleDescription du style
defaultStyle par défaut, épuré et neutre
ggplotImite le style R ggplot2, fond gris avec grille blanche
seaborn-v0_8Style moderne similaire à la bibliothèque seaborn
seaborn-v0_8-brightPalette vive de seaborn
seaborn-v0_8-colorblindPalette adaptée aux daltoniens de seaborn
seaborn-v0_8-darkstyle sombre seaborn
seaborn-v0_8-dark-palettepalette sombre seaborn
seaborn-v0_8-darkgridseaborn sombre avec grille
seaborn-v0_8-deeptons profonds seaborn
seaborn-v0_8-mutedtons atténués seaborn
seaborn-v0_8-notebookstyle notebook seaborn
seaborn-v0_8-paperstyle papier seaborn
seaborn-v0_8-pasteltons pastel seaborn
seaborn-v0_8-posterstyle poster seaborn
seaborn-v0_8-talkstyle talk seaborn
seaborn-v0_8-ticksstyle ticks seaborn
seaborn-v0_8-whitefond blanc seaborn
seaborn-v0_8-whitegridseaborn blanc avec grille
fivethirtyeightImite le style de journalisme de données de FiveThirtyEight
dark_backgroundFond sombre, adapté aux présentations et à une utilisation nocturne
bmhStyle Bayesian Methods for Hackers
grayscaleStyle en niveaux de gris, adapté à l'impression en noir et blanc
classicStyle classique de Matplotlib v1.x
fastStyle simplifié, rendu plus rapide
Solarize_Light2Thème clair Solarized
tableau-colorblind10Palette Tableau adaptée aux daltoniens

Configuration des rcParams courants

ParamètreDescriptionValeur d'exemple
figure.figsizeTaille de figure par défaut (pouces)[8, 6]
figure.dpiRésolution par défaut100
figure.facecolorCouleur d'arrière-plan de la figure'white'
figure.edgecolorCouleur de bordure de la figure'white'
font.sizeTaille de police globale12
font.familyFamille de polices'sans-serif'
font.sans-serifListe de polices sans-serif['DejaVu Sans', ...]
axes.titlesizeTaille de police du titre'large'
axes.labelsizeTaille de police des étiquettes d'axe'medium'
axes.gridIndique si la grille est affichée par défautFalse
axes.facecolorCouleur d'arrière-plan des axes'white'
axes.spines.topIndique s'il faut afficher la bordure supérieureTrue
axes.spines.rightIndique s'il faut afficher la bordure droiteTrue
lines.linewidthLargeur de ligne par défaut1.5
lines.markersizeTaille de marqueur par défaut6
lines.linestyleStyle de ligne par défaut'-'
legend.locPosition de légende par défaut'best'
legend.fontsizeTaille de police de légende'medium'
xtick.labelsizeTaille des étiquettes de graduation de l'axe x'medium'
ytick.labelsizetaille des étiquettes de graduation de l'axe y'medium'
savefig.dpiDPI par défaut pour l'enregistrement des images'figure'
savefig.bboxMode de boîte englobante lors de l'enregistrementAucune
image.cmapPalette de couleurs par défaut'viridis'
image.interpolationMéthode d'interpolation d'image'antialiased'

Référence rapide des palettes de couleurs

CatégorieNom de la palette de couleursScénario d'application
Uniforme perceptuellement (Séquentiel)viridis, plasma, inferno, magma, cividisDonnées continues, adaptées aux daltoniens, premier choix recommandé
Séquentiel (dégradé à teinte unique)Greys, Purples, Blues, Greens, Oranges, Reds, YlOrBr, YlOrRd, OrRd, PuRd, RdPu, BuPu, GnBu, PuBu, YlGnBu, PuBuGn, BuGn, YlGnDonnées continues de faible à élevé, teinte unique
DivergentPiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismicDonnées bidirectionnelles avec un point de référence central
Cycliquetwilight, twilight_shifted, hsvPériodique (par ex., angle,)
QualitativePastel1, Pastel2, Paired, Accent, Dark2, Set1, Set2, Set3, tab10, tab20, tab20b, tab20cDonnées catégorielles discrètes
Diversflag, prism, gist_earth, terrain, gist_stern, gnuplot, gnuplot2, CMRmap, cubehelix, brg, gist_rainbow, rainbow, jet, turbo, nipy_spectral, gist_ncarUsage spécial ou effets visuels

'viridis'C'est la palette de couleurs par défaut depuis Matplotlib 2.0, avec une excellente uniformité perceptuelle et une bonne prise en charge du daltonisme, ce qui en fait le premier choix dans la plupart des scénarios. Évitez d'utiliser'jet'et'rainbow', car elles présentent des problèmes de distorsion perceptuelle.


Exemples courants

Exemple 1 : Graphique en courbes et nuage de points de base

Créez un graphique contenant plusieurs courbes et annotations en utilisant l'interface explicite Axes.

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer les données : 100 points équidistants de 0 à 10
x = np.linspace(0, 10, 100)
y1 = np.sin(x)   # Fonction sinus
y2 = np.cos(x)   # Fonction cosinus

# Créer une Figure et des Axes (interface explicite, recommandée)
fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')

# Tracer deux lignes, définir les couleurs, les styles de ligne et les étiquettes
ax.plot(x, y1, label='sin(x)', color='blue', linewidth=2)
ax.plot(x, y2, label='cos(x)', color='red', linestyle='--', linewidth=2)

# Ajouter des points de dispersion mis en évidence aux positions des pics
peak_idx_sin = np.argmax(y1)
peak_idx_cos = np.argmax(y2)
ax.scatter(x[peak_idx_sin], y1[peak_idx_sin],
           color='blue', s=100, zorder=5)
ax.scatter(x[peak_idx_cos], y2[peak_idx_cos],
           color='red', s=100, zorder=5)

# Décoration : titre, étiquettes des axes, légende, grille
ax.set_title('Fonctions sinus et cosinus', fontsize=14)
ax.set_xlabel('x (radians)')
ax.set_ylabel('Amplitude')
ax.legend(loc='upper right')
ax.grid(True, alpha=0.3)

plt.show()
print("exemple : tracé affiché avec succès")

Exemple 2 : disposition multi-sous-graphiques (2x2)

Montre comment créer différents types de sous-graphiques dans une Figure.

Exemple

import matplotlib.pyplot as plt
import numpy as np

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

# Créer des sous-graphiques 2x2 (interface orientée objet)
fig, axes = plt.subplots(2, 2, figsize=(10, 8), layout='constrained')
fig.suptitle('Démo EXEMPLE multi-panneaux', fontsize=16)

# Sous-graphique (0,0) : graphique linéaire
axes[0, 0].plot(x, np.sin(x), color='tab:blue', linewidth=2)
axes[0, 0].set_title('Graphique linéaire')
axes[0, 0].set_ylabel('sin(x)')

# Sous-graphique (0,1) : nuage de points
np.random.seed(42)
colors = np.random.rand(50)
sizes = np.random.rand(50) * 200
axes[0, 1].scatter(np.random.rand(50), np.random.rand(50),
                   c=colors, s=sizes, alpha=0.6, cmap='viridis')
axes[0, 1].set_title('Nuage de points')

# Sous-graphique (1,0) : diagramme à barres (avec étiquettes de valeurs)
categories = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 56, 78, 32]
bars = axes[1, 0].bar(categories, values,
                       color='tab:green', edgecolor='white')
axes[1, 0].bar_label(bars)  # Afficher les valeurs sur les barres
axes[1, 0].set_title('Diagramme à barres')

# Sous-graphe (1,1) : histogramme
data = np.random.randn(1000)
axes[1, 1].hist(data, bins=30, color='tab:orange',
                edgecolor='white', alpha=0.8)
axes[1, 1].axvline(x=0, color='red', linestyle='--', linewidth=2)
axes[1, 1].set_title('Histogramme')

plt.show()

Exemple 3 : Carte thermique vs tracé de contours

Démontre la visualisation de données 2D dans la même Figure en utilisant à la fois imshow et contourf.

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Créer des données de grille 2D
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)  # valeurs de la fonction 2D

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5),
                                layout='constrained')

# Panneau gauche : carte de chaleur (imshow)
im = ax1.imshow(Z, extent=[-3, 3, -3, 3], origin='lower',
                cmap='viridis', aspect='auto')
ax1.set_title('Carte de chaleur (imshow)', fontsize=14)
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
fig.colorbar(im, ax=ax1, label='Amplitude', shrink=0.8)

# Panneau droit : contours remplis (contourf)
contour = ax2.contourf(X, Y, Z, levels=15, cmap='RdYlBu')
# Superposer les limites de contour
ax2.contour(X, Y, Z, levels=15, colors='black', linewidths=0.5)
ax2.set_title('Contour rempli (contourf)', fontsize=14)
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
fig.colorbar(contour, ax=ax2, label='Amplitude', shrink=0.8)

plt.show()

Exemple 4 : Changement de style et sauvegarde de figures

Utilisez les feuilles de style et rcParams pour personnaliser l'apparence et enregistrer des images de haute qualité.

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Utiliser le style ggplot, puis affiner certains paramètres
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = [8, 6]
plt.rcParams['font.size'] = 12

x = np.linspace(0, 10, 50)
y1 = np.exp(-x/3) * np.sin(2 * x)  # Onde sinusoïdale amortie
y2 = np.exp(-x/3) * np.cos(2 * x)  # Onde cosinusoïdale amortie

fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='Sinus amorti', markersize=6)
ax.plot(x, y2, 's--', label='Cosinus amorti', markersize=6)

# Annoter le premier pic
peak_idx = np.argmax(y1)
ax.annotate(f'Pic : {y1[peak_idx]:.2f}',
            xy=(x[peak_idx], y1[peak_idx]),
            xytext=(x[peak_idx] + 1.5, y1[peak_idx] + 0.15),
            arrowprops=dict(arrowstyle='->', color='gray'),
            fontsize=10)

ax.set_title('Oscillation amortie', fontsize=16)
ax.set_xlabel('Temps (s)')
ax.set_ylabel('Amplitude')
ax.legend()
ax.grid(True)

# Enregistrer en PNG de haute qualité à 300 DPI
fig.savefig('example_damped_oscillation.png',
            dpi=300, bbox_inches='tight')
print("exemple : figure enregistrée avec succès")

plt.show()

Exemple 5 : mise en page complexe avec mosaïque

Utilisez subplot_mosaic pour créer des dispositions de sous-graphiques non uniformes.

Exemple

import matplotlib.pyplot as plt
import numpy as np

# La chaîne de mosaïque définit la disposition :
# 'A' s'étend sur toute la ligne du haut, 'B' et 'C' sont en bas à gauche et au milieu à gauche, 'D' occupe verticalement la partie inférieure droite
layout = """
A A A
B C D
"""


fig, axes = plt.subplot_mosaic(layout, figsize=(10, 6),
                                layout='constrained')
fig.suptitle('Disposition mosaïque complexe (EXEMPLE)', fontsize=16)

# Panneau A : graphique en courbes (s'étend sur la partie supérieure)
x = np.linspace(0, 10, 100)
axes['A'].plot(x, np.sin(x), label='sin(x)')
axes['A'].plot(x, np.cos(x), label='cos(x)')
axes['A'].set_title('Panneau A : tracé linéaire')
axes['A'].legend()

# Panneau B : diagramme circulaire
sizes = [30, 25, 20, 15, 10]
labels = ['Python', 'Java', 'C++', 'Rust', 'Go']
axes['B'].pie(sizes, labels=labels, autopct='%1.1f%%',
              startangle=90)
axes['B'].set_title('Panneau B: Diagramme circulaire')

# Panneau C: diagramme à barres
axes['C'].bar(['X', 'Y', 'Z'], [10, 25, 15],
              color=['#ff6b6b', '#4ecdc4', '#45b7d1'])
axes['C'].set_title('Panneau C: Diagramme à barres')

# Panneau D: carte de chaleur
matrix = np.random.rand(5, 5)
im = axes['D'].imshow(matrix, cmap='Blues', aspect='auto')
axes['D'].set_title('Panneau D : Carte thermique')
fig.colorbar(im, ax=axes['D'])

plt.show()

Exemple 6 : Axes Y doubles et axes incrustés

Démontre l'utilisation de secondary_axis, twinx et inset_axes.

Exemple

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(8, 5), layout='constrained')

x = np.linspace(0, 10, 100)

# Graphique principal : tracer deux courbes avec des dimensions différentes
ax.plot(x, np.sin(x), 'b-', label='sin(x) [amplitude]')
ax.set_xlabel('x (radians)')
ax.set_ylabel('sin(x)', color='blue')
ax.tick_params(axis='y', labelcolor='blue')

# Créer un axe y jumeau (axe x partagé)
ax2 = ax.twinx()
ax2.plot(x, np.exp(x/5), 'r--', label='exp(x/5) [croissance]')
ax2.set_ylabel('exp(x/5)', color='red')
ax2.tick_params(axis='y', labelcolor='red')

# Ajouter un sous-graphique en incrustation dans ax (zoom sur une région locale)
axins = ax.inset_axes([0.15, 0.5, 0.3, 0.35])
axins.plot(x, np.sin(x), 'b-')
axins.set_xlim(3, 5)
axins.set_ylim(-1.2, 1.2)
axins.set_title('Région zoomée')
axins.grid(True, alpha=0.3)

# Marquer la région de l'encart sur le graphique principal
ax.indicate_inset_zoom(axins, edgecolor='gray')

ax.set_title('Axes Y doubles avec zoom en encart', fontsize=14)
plt.show()

Questions fréquentes

Graphiques non affichés

Vérifiez si vous avez appeléplt.show()。

Doit être appelé explicitement dans les backends non interactifs (par ex., Agg)show()。

Dans Jupyter Notebook, utilisez%matplotlib inlineLa commande magique garantit que les graphiques sont affichés en ligne.

Trop de graduations ou ordre des graduations incorrect

La cause fréquente est de passer une liste de chaînes de caractères comme données (plutôt que des valeurs numériques ou datetime).

Matplotlib traite les listes de chaînes de caractères comme des variables catégorielles, avec une graduation par valeur unique, dans l'ordre d'apparition.

Solution : convertir les chaînes en valeurs numériques, par exemple.np.asarray(data, dtype='float')ounp.asarray(data, dtype='datetime64[s]')。

Caractères chinois affichés sous forme de carrés

La police par défaut de Matplotlib (DejaVu Sans) ne contient pas de glyphes chinois ; vous devez spécifier une police qui prend en charge le chinois.

Setplt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', ...]Et assurez-vous que la police correspondante est installée sur le système.

Étiquettes se chevauchant ou tronquées

Recommandé à utiliser lors de la création d'une Figurelayout='constrained'oulayout='compressed'paramètre, qui gère automatiquement le chevauchement des étiquettes, des titres et des légendes.

Vous pouvez également utiliserfig.tight_layout()oufig.subplots_adjust()ajustement manuel.

Différences entre pcolor et pcolormesh

pcolor()Crée une PolyCollection, un rendu plus lent mais plus précis.

pcolormesh()Crée un QuadMesh, un rendu plus rapide, recommandé dans la plupart des cas.

Pour les grilles très grandes,pcolorfast()utiliser la méthode imshow pour tracer, la plus rapide mais la moins précise.


Ressources associées

  • Site officiel de Matplotlib : matplotlib.org
  • Galerie officielle : matplotlib.org/stable/gallery/index.html
  • Référence complète de l'API : matplotlib.org/stable/api/index.html
  • Guide d'installation : matplotlib.org/stable/install/index.html
  • Guide de contribution : matplotlib.org/stable/devel/index.html
Autres extensions