Fonctions 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 organise de manière exhaustive les fonctions et méthodes de toutes les interfaces publiques de Matplotlib, ce qui permet de rechercher rapidement les fonctionnalités et utilisations correspondantes.


Deux grandes interfaces de programmation

Matplotlib propose deux approches d'utilisation, adaptées à différents scénarios.

Fonctionnalité Interface Axes (explicite/orientée objet) Interface pyplot (implicite/fonctionnelle)
Utilisation Créez d'abord des objets Figure et Axes, puis appelez les méthodes des objets. Appeler directement les fonctions du module pyplot, en opérant implicitement sur la figure courante.
Scénarios applicables Graphiques complexes, plusieurs sous-graphiques, contrôle précis requis. 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, plus contrôlable) Adapté aux scénarios simples et au prototypage rapide.

L'interface Axes est l'approche de programmation officiellement recommandée. La logique du 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 les méthodes Axes correspondantes.


Module pyplot - Liste complète des fonctions

pyplot est l'interface de haut niveau de Matplotlib, offrant une expérience de tracé semblable à MATLAB. Ce qui suit liste toutes les fonctions par catégorie officielle.

1. Gestion des figures et des axes

Fonctions de création et de gestion des objets Figure (canevas) et Axes (système de coordonnées/sous-graphique).

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 seul sous-graphique à la Figure courante (par index de ligne et de colonne).
subplot2grid()Créer un subplot à une position spécifiée dans une disposition en grille.
subplot_mosaic()Créer une disposition complexe non uniforme à l'aide de chaînes d'étiquettes.
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 la fenêtre Figure.
delaxes()Supprimer les Axes spécifiés de la Figure.
fignum_exists()Vérifier si une Figure avec le numéro spécifié existe.
get_figlabels()Retourner la liste des étiquettes de toutes les Figures.
get_fignums()Renvoyez la liste des numéros de toutes les Figures.
twinx()Créez un axe y jumeau partageant l'axe x.
twiny()Créez un axe x jumeau partageant l'axe y.

2. Tracé de base

Les fonctions de tracé des types de graphiques les plus courants.

FonctionDescription
plot()Tracez un graphique en courbes (le plus courant).
scatter()Tracez un nuage de points, en prenant en charge la correspondance taille/couleur/transparence.
bar()Tracez un diagramme à barres verticales.
barh()Tracez un diagramme à barres horizontales.
bar_label()Ajoutez des étiquettes de valeur aux barres d'un diagramme à barres.
grouped_bar()Tracez un diagramme à barres groupées.
pie()Tracez un diagramme circulaire.
pie_label()Ajoutez des étiquettes à un diagramme circulaire.
stem()Tracer un diagramme à tiges (diagramme en allumettes).
eventplot()Tracer un diagramme d'événements (plusieurs lignes horizontales marquant les positions des événements).
step()Tracer un graphique en escalier.
fill()Dessiner des polygones remplis.
fill_between()Remplir l'aire 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 en courbes avec barres d'erreur.
loglog()Graphique en courbes log-log.
semilogx()Graphique en courbes avec axe des x logarithmique.
semilogy()Graphique en courbes avec axe des y logarithmique.
polar()Tracer en coordonnées polaires.

3. Lignes d'étendue (Spans)

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

FonctionDescription
axhline()Ajouter une ligne horizontale couvrant les axes.
axhspan()Ajouter une bande ombrée horizontale couvrant les axes.
axvline()Ajouter une ligne verticale couvrant les axes.
axvspan()Ajouter une bande ombrée verticale couvrant les 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 un graphique d'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

Fonctions pour tracer des 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 1D
hist2d()Tracer un histogramme 2D
hexbin()Tracer un diagramme de regroupement hexagonal
stairs()Tracer un histogramme en escalier (nouvelle version, remplaçant le mode step de hist)

7. Lignes de contour

FonctionDescription
contour()Tracer des lignes de contour
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()Tracer un maillage en pseudocouleur (crée un PolyCollection)
pcolormesh()Tracer un maillage en pseudocouleur (crée un QuadMesh, de meilleures performances)
spy()Tracer le motif des éléments non nuls d'une matrice creuse
figimage()Placer 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 pseudo-couleurs sur une grille triangulaire
tricontour()Tracer des lignes de contour sur une grille triangulaire
tricontourf()Tracer des contours remplis 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 les Axes
figlegend()Ajouter une légende au niveau de la Figure
table()Ajouter un tableau dans les Axes

11. Champs vectoriels

FonctionDescription
quiver()Tracer un champ de vecteurs (quiver plot)
quiverkey()Ajouter une échelle de légende au champ de vecteurs
barbs()Tracer un diagramme de barbules (représentant la vitesse et la direction du vent en météorologie)
streamplot()Tracer des lignes de courant

12. Configuration des axes

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

FonctionDescription
title()Définir le titre des axes
suptitle()Définir le suptitre de la figure
xlabel()Définir le libellé de l'axe des x
ylabel()Définir le libellé de l'axe des y
xlim()Obtenir ou définir les limites de l'axe des x
ylim()Obtenir ou définir les limites 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 des 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 étiquettes 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 du graphique polaire
thetagrids()Obtenir ou définir les lignes de grille angulaires du 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 lignes de bordure des axes
autoscale()Mettre automatiquement à l'échelle les axes pour qu'ils s'adaptent 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 une disposition compacte
margins()Définir ou obtenir les marges de données des axes
subplot_tool()Lancer la fenêtre de l'outil interactif 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 couleurs
clim()Définir la plage de données de la palette de couleurs
get_cmap()Obtenir l'objet de palette de couleurs avec 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 le 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 des graphiques, l'enregistrement et les modes d'interaction.

FonctionDescription
show()Afficher toutes les Figures ouvertes
savefig()Enregistrer la Figure actuelle dans un fichier
draw()Forcer le réaffichage de la Figure actuelle
draw_if_interactive()Effectuer le rendu de la Figure si en mode interactif
pause()Mettre en pause pendant le nombre de secondes spécifié (en traitant les événements pendant la pause)
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 le hook d'affichage REPL (pour afficher les Figures automatiquement)
uninstall_repl_displayhook()Désinstaller le hook d'affichage REPL
switch_backend()Changer de backend

17. Autres fonctions utilitaires

FonctionDescription
connect()Lier une fonction de rappel d'événement
disconnect()Délier 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, renvoyer le type d'événement
findobj()Trouver les objets Artist correspondant aux conditions spécifiées
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-graphe au sein d'une Figure, contenant des données, des graduations, des étiquettes, des titres, etc. La liste suivante répertorie toutes les méthodes complètement selon la classification officielle.

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()Remplir des polygones
Axes.fill_between()Région de remplissage horizontale
Axes.fill_betweenx()Région de remplissage verticale
Axes.stackplot()Graphique 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 de lignes 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 hexbin
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()Pseudocouleur 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 des axes encastrés dans les 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 de vecteurs (tracé de flèches)
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 la plage de l'axe
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()Obtenir la couche de grille/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 pour les couleurs/styles de ligne, etc.

14. Contrôle des axes et des graduations

Accès aux axes :

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

Plage 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 des x
Axes.invert_yaxis()Inverser la direction de l'axe des 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 des Artists actuels
Axes.use_sticky_edges()Utiliser des bords collants
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 s'échelonne automatiquement
Axes.set_autoscaley_on() / get_autoscaley_on()Définir/obtenir si l'axe des y s'échelonne automatiquement

Rapport d'aspect :

MéthodeDescription
Axes.set_aspect() / get_aspect()Définir/obtenir le rapport d'aspect des axes ('equal'/'auto'/nombre)
Axes.set_box_aspect() / get_box_aspect()Définir/obtenir le rapport d'aspect de la boîte des Axes
Axes.apply_aspect()Appliquer le paramètre actuel 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 du convertisseur d'unités
Axes.convert_yunits()Convertir les valeurs y à l'aide du 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 un objet Artist arbitraire
Axes.add_child_axes()Ajouter un Axes enfant
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 des x avec d'autres Axes
Axes.sharey()Partager l'axe des y avec d'autres 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.staleIndiquer si l'Artist doit être redessiné (propriété)
Axes.pchanged()Notifier un événement de modification 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()Renvoyer si le panoramique/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()Formater la chaîne de coordonnées affichée dans la barre d’outils
Axes.format_cursor_data()Formater la valeur de données au niveau du curseur
Axes.format_xdata() / format_ydata()Formater 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 un 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. Interrogation des éléments 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()Rechercher les Artists enfants correspondant à la condition

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 pour la rastérisation

23. Projection (les sous-classes doivent la redéfinir)

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 en lot
Axes.zorderObtenir/définir zorder (propriété)
Axes.get_figure()Obtenir l'objet Figure parent
Axes.figureObjet Figure parent (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.viewLimLimites de vue (propriété)
Axes.dataLimLimites des données (propriété)
Axes.spinesDictionnaire des épines (propriété)

Objet Figure - Liste complète des méthodes

Figure est le conteneur de niveau supérieur de l'ensemble du graphique, gérant tous les Axes, Artists et la disposition.

1. Ajout d’Axes et de SubFigure

MéthodeDescription
Figure.subplots()RecommandéCréer une grille de sous-graphiques Axes
Figure.add_subplot()Ajouter un sous-graphique unique à une position ligne/colonne donnée
Figure_axes()Ajouter un Axes à une position et une taille spécifiées
Figure.subplot_mosaic()Créer des agencements complexes de sous-graphiques à l’aide d’une disposition basée sur des étiquettes
Figure.add_gridspec()Ajouter un objet de disposition GridSpec
Figure.subfigures()Créer une SubFigure 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 étiquettes des axes de tous les sous-graphiques
Figure.align_xlabels()Aligner les étiquettes de l’axe x de tous les sous-graphiques
Figure.align_ylabels()Aligner les étiquettes de l’axe 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 le 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()Mise en page compacte automatique (obsolète)
Figure.set_tight_layout() / get_tight_layout()Définir/obtenir tight_layout (obsolète)
Figure.set_constrained_layout() / get_constrained_layout()Définir/obtenir constrained_layout (obsolète)
Figure.set_constrained_layout_pads() / get_constrained_layout_pads()Définir/obtenir les marges de constrained_layout (obsolète)

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 ligne du cadre 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 du cadre de la Figure

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

MéthodeDescription
Figure.add_artist()Ajouter un Artist arbitraire
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 mise en page sans rendu (pour obtenir des informations de 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 une Figure parente, avec des méthodes similaires à Figure.

Ajout d'Axes

MéthodeDescription
SubFigure.subplots()Créer une grille de sous-graphiques
SubFigure.add_subplot()Ajouter un seul sous-graphique
SubFigure.add_axes()Ajouter un Axes à une position spécifiée
SubFigure.subplot_mosaic()Sous-graphiques de disposition basée sur les étiquettes
SubFigure.add_gridspec()Ajouter un 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éthodeDescription
SubFigure.suptitle() / get_suptitle()SubFigure suptitle
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éthodeDescription
SubFigure.add_artist()Ajouter un Artist
SubFigure.get_children()Obtenir les Artists enfants
SubFigure.set_frameon() / get_frameon()Définir/obtenir le cadre
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 du cadre
SubFigure.set_dpi() / get_dpi()Définir/obtenir le DPI

Référence rapide de configuration du style

Feuilles de style intégrées

Enplt.style.use('name')changeant de style.

Nom du styleDescription
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 deep de seaborn
seaborn-v0_8-darkgridstyle darkgrid de seaborn
seaborn-v0_8-deeppalette sombre seaborn
seaborn-v0_8-mutedpalette muted de seaborn
seaborn-v0_8-notebookstyle notebook seaborn
seaborn-v0_8-paperstyle papier seaborn
seaborn-v0_8-pastelpalette pastel de seaborn
seaborn-v0_8-posterstyle poster seaborn
seaborn-v0_8-talkstyle talk seaborn
seaborn-v0_8-ticksstyle ticks seaborn
seaborn-v0_8-whitestyle white de seaborn
seaborn-v0_8-whitegridstyle whitegrid de seaborn
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

Configurations courantes de rcParams

ParametersDescriptionExemples de valeurs
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 bord 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.topAfficher ou non la bordure supérieureTrue
axes.spines.rightAfficher ou non 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.locEmplacement par défaut de la légende'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.dpiRésolution 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énarios applicables
Uniforme perceptuellement (Séquentiel)viridis, plasma, inferno, magma, cividisDonnées continues, adaptées aux daltoniens, recommandées comme premier choix
Séquentielle (dégradé d'une seule couleur)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, hsvDonnées périodiques (par ex., angles, temps)
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_ncarUsages spécifiques ou effets visuels

'viridis'C'est la palette de couleurs par défaut depuis Matplotlib 2.0, avec une excellente uniformité perceptuelle et des caractéristiques adaptées aux daltoniens, et c'est le premier choix pour la plupart des scénarios. Évitez d'utiliser'jet'et'rainbow', qui présentent des problèmes de distorsion perceptuelle.


Exemples courants

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

Utilisez l'interface explicite Axes pour créer des graphiques avec plusieurs courbes et annotations.

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer des données : 100 points équidistants entre 0 et 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écorer : titre, étiquettes d'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 de sous-graphiques multiples (2x2)

Montrer comment créer différents types de sous-graphiques dans une même Figure.

Exemple

import matplotlib.pyplot as plt
import numpy as np

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

# Créer un subplot 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)

# Subplot (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 : comparaison entre heatmap et graphique de contour

Démontrer la visualisation de données 2D dans la même Figure en utilisant 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 de droite : contour rempli (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 des feuilles de style et rcParams pour personnaliser l'apparence, et enregistrez des figures de haute qualité.

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Utilisez le style ggplot, puis ajustez finement 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 tant que PNG 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 : disposition mosaïque complexe

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

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Définir la disposition avec une chaîne mosaïque :
# 'A' s'étend sur toute la ligne supérieure, 'B' et 'C' sont en bas à gauche et au milieu à gauche, 'D' occupe verticalement le coin inférieur droit
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 toute 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 jumeaux et sous-graphiques en encart

Démontrez 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 des axes y jumeaux (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 encart dans ax (zoomer 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()

Problèmes courants

Graphiques non affichés

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

Sous les backends non interactifs (tels que Agg), elle doit être appelée explicitementshow()。

Dans Jupyter Notebook, utilisez%matplotlib inlinecommande magique pour garantir que les graphiques s'affichent en ligne

Trop de graduations ou ordre incorrect

Une cause courante est de passer une liste de chaînes de caractères comme données (au lieu de valeurs numériques ou datetime)

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

Solution : convertissez les chaînes de caractères en valeurs numériques, telles quenp.asarray(data, dtype='float')ounp.asarray(data, dtype='datetime64[s]')。

Les caractères chinois s'affichent 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

Il est recommandé de l'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()ajuster manuellement

Différence entre pcolor et pcolormesh

pcolor()Crée une PolyCollection, le rendu est plus lent mais plus précis

pcolormesh()Crée un QuadMesh, le rendu est plus rapide, et c'est le choix recommandé pour la plupart des scénarios

Pour les grilles très grandes,pcolorfast()utiliser imshow pour tracer est le plus rapide mais a la précision la plus faible


Ressources associées

  • Site officiel de Matplotlib : matplotlib.org
  • Galerie officielle (Gallery) : 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