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.
| Fonction | Contenu associé |
|---|---|
| Fonction plot() de Matplotlib | plot() |
| Fonction scatter() de Matplotlib | scatter() |
| Fonction bar() / barh() de Matplotlib | bar(), barh(), bar_label(), grouped_bar() |
| Fonction hist() de Matplotlib | hist() |
| Fonction pie() de Matplotlib | pie(), pie_label() |
| Fonction imshow() de Matplotlib | imshow() |
| Fonction subplots() de Matplotlib | subplots() |
| Fonction figure() de Matplotlib | figure() |
| Fonction savefig() de Matplotlib | savefig() |
| Fonction errorbar() de Matplotlib | errorbar() |
| Fonction boxplot() de Matplotlib | boxplot() |
| Fonction contour() / contourf() de Matplotlib | contour(), contourf(), clabel() |
| Fonction fill_between() / fill_betweenx() de Matplotlib | fill_between(), fill_betweenx() |
| Fonction legend() de Matplotlib | legend() |
| Fonction text() / annotate() de Matplotlib | text(), annotate() |
| Fonctions de titre et d'étiquettes de Matplotlib | title(), xlabel(), ylabel(), suptitle(), supxlabel(), supylabel() |
| Fonction colorbar() de Matplotlib | colorbar() |
| Fonctions de gestion des figures et des axes de Matplotlib | axes(), 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 Matplotlib | step(), stem(), eventplot(), stackplot(), broken_barh(), vlines(), hlines(), fill(), loglog(), semilogx(), semilogy() |
| Fonctions d'étendue et de champ vectoriel de Matplotlib | axhline(), axhspan(), axvline(), axvspan(), axline(), quiver(), quiverkey(), barbs(), streamplot() |
| Fonctions d'analyse spectrale de Matplotlib | acorr(), xcorr(), psd(), csd(), specgram(), cohere(), angle_spectrum(), magnitude_spectrum(), phase_spectrum() |
| Fonctions de tracé de données 2D et statistiques de Matplotlib | hist2d(), hexbin(), stairs(), matshow(), pcolor(), pcolormesh(), spy(), figimage(), ecdf(), violinplot() |
| Fonctions de triangulation et de coordonnées polaires de Matplotlib | triplot(), tripcolor(), tricontour(), tricontourf(), polar(), rgrids(), thetagrids() |
| Fonctions de configuration des axes Matplotlib | xlim(), 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 Matplotlib | subplots_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 Matplotlib | connect(), 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 Matplotlib | figtext(), 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).
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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 |
| colormaps | Objet registre de palettes de couleurs |
| color_sequences | Objet registre de séquences de couleurs |
15. Configuration
Fonctions de gestion des paramètres de configuration globale de Matplotlib.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| Axes.hist() | Histogramme |
| Axes.hist2d() | Histogramme 2D |
| Axes.hexbin() | Diagramme de compartiments hexagonaux |
| Axes.stairs() | Histogramme en escalier |
6. Méthodes de contour
| Méthode | Description |
|---|---|
| Axes.contour() | Contour |
| Axes.contourf() | Contour rempli |
| Axes.clabel() | Étiquettes de contour |
7. Méthodes de tableau 2D
| Méthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| Axes.cla() | Effacer tout le contenu des Axes |
| Axes.clear() | Effacer les Axes (identique à cla()) |
12. Méthodes d'apparence
| Méthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| Axes.xaxis / Axes.yaxis | Obtenir 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| Axes.stale | Indique 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| Axes.name | Nom 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éthode | Description |
|---|---|
| Axes.set() | Définir les propriétés par lots |
| Axes.zorder | Obtenir/définir zorder (propriété) |
| Axes.get_figure() | Obtenir l’objet Figure propriétaire |
| Axes.figure | Objet 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.viewLim | Plage de vue (propriété) |
| Axes.dataLim | Plage de données (propriété) |
| Axes.spines | Dictionnaire 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éthode | Description |
|---|---|
| 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.axes | Liste des Axes (propriété) |
| Figure.get_axes() | Obtenir tous les Axes |
| Figure.delaxes() | Supprimer l'Axes spécifié |
2. Sauvegarde
| Méthode | Description |
|---|---|
| Figure.savefig() | Enregistrer la Figure dans un fichier |
3. Annotations au niveau de la Figure
| Méthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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.dpi | Résolution DPI (propriété) |
| Figure.set_dpi() / get_dpi() | Définir/obtenir DPI |
5. Disposition des sous-graphiques
| Méthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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éthodes | Description |
|---|---|
| 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éthodes | Description |
|---|---|
| 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éthodes | Description |
|---|---|
| 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 style | Description du style |
|---|---|
| default | Style par défaut, épuré et neutre |
| ggplot | Imite le style R ggplot2, fond gris avec grille blanche |
| seaborn-v0_8 | Style moderne similaire à la bibliothèque seaborn |
| seaborn-v0_8-bright | Palette vive de seaborn |
| seaborn-v0_8-colorblind | Palette adaptée aux daltoniens de seaborn |
| seaborn-v0_8-dark | style sombre seaborn |
| seaborn-v0_8-dark-palette | palette sombre seaborn |
| seaborn-v0_8-darkgrid | seaborn sombre avec grille |
| seaborn-v0_8-deep | tons profonds seaborn |
| seaborn-v0_8-muted | tons atténués seaborn |
| seaborn-v0_8-notebook | style notebook seaborn |
| seaborn-v0_8-paper | style papier seaborn |
| seaborn-v0_8-pastel | tons pastel seaborn |
| seaborn-v0_8-poster | style poster seaborn |
| seaborn-v0_8-talk | style talk seaborn |
| seaborn-v0_8-ticks | style ticks seaborn |
| seaborn-v0_8-white | fond blanc seaborn |
| seaborn-v0_8-whitegrid | seaborn blanc avec grille |
| fivethirtyeight | Imite le style de journalisme de données de FiveThirtyEight |
| dark_background | Fond sombre, adapté aux présentations et à une utilisation nocturne |
| bmh | Style Bayesian Methods for Hackers |
| grayscale | Style en niveaux de gris, adapté à l'impression en noir et blanc |
| classic | Style classique de Matplotlib v1.x |
| fast | Style simplifié, rendu plus rapide |
| Solarize_Light2 | Thème clair Solarized |
| tableau-colorblind10 | Palette Tableau adaptée aux daltoniens |
Configuration des rcParams courants
| Paramètre | Description | Valeur d'exemple |
|---|---|---|
| figure.figsize | Taille de figure par défaut (pouces) | [8, 6] |
| figure.dpi | Résolution par défaut | 100 |
| figure.facecolor | Couleur d'arrière-plan de la figure | 'white' |
| figure.edgecolor | Couleur de bordure de la figure | 'white' |
| font.size | Taille de police globale | 12 |
| font.family | Famille de polices | 'sans-serif' |
| font.sans-serif | Liste de polices sans-serif | ['DejaVu Sans', ...] |
| axes.titlesize | Taille de police du titre | 'large' |
| axes.labelsize | Taille de police des étiquettes d'axe | 'medium' |
| axes.grid | Indique si la grille est affichée par défaut | False |
| axes.facecolor | Couleur d'arrière-plan des axes | 'white' |
| axes.spines.top | Indique s'il faut afficher la bordure supérieure | True |
| axes.spines.right | Indique s'il faut afficher la bordure droite | True |
| lines.linewidth | Largeur de ligne par défaut | 1.5 |
| lines.markersize | Taille de marqueur par défaut | 6 |
| lines.linestyle | Style de ligne par défaut | '-' |
| legend.loc | Position de légende par défaut | 'best' |
| legend.fontsize | Taille de police de légende | 'medium' |
| xtick.labelsize | Taille des étiquettes de graduation de l'axe x | 'medium' |
| ytick.labelsize | taille des étiquettes de graduation de l'axe y | 'medium' |
| savefig.dpi | DPI par défaut pour l'enregistrement des images | 'figure' |
| savefig.bbox | Mode de boîte englobante lors de l'enregistrement | Aucune |
| image.cmap | Palette de couleurs par défaut | 'viridis' |
| image.interpolation | Méthode d'interpolation d'image | 'antialiased' |
Référence rapide des palettes de couleurs
| Catégorie | Nom de la palette de couleurs | Scénario d'application |
|---|---|---|
| Uniforme perceptuellement (Séquentiel) | viridis, plasma, inferno, magma, cividis | Donné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, YlGn | Données continues de faible à élevé, teinte unique |
| Divergent | PiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismic | Données bidirectionnelles avec un point de référence central |
| Cyclique | twilight, twilight_shifted, hsv | Périodique (par ex., angle,) |
| Qualitative | Pastel1, Pastel2, Paired, Accent, Dark2, Set1, Set2, Set3, tab10, tab20, tab20b, tab20c | Données catégorielles discrètes |
| Divers | flag, prism, gist_earth, terrain, gist_stern, gnuplot, gnuplot2, CMRmap, cubehelix, brg, gist_rainbow, rainbow, jet, turbo, nipy_spectral, gist_ncar | Usage 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 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 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 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 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 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 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