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).
| 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 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.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| 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 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
| Fonction | Description |
|---|---|
| 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.
| 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() | 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
| Fonction | Description |
|---|---|
| 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
| 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 les Axes |
| figlegend() | Ajouter une légende au niveau de la Figure |
| table() | Ajouter un tableau dans les Axes |
11. Champs vectoriels
| Fonction | Description |
|---|---|
| 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.
| Fonction | Description |
|---|---|
| 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.
| 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 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.
| Fonction | Description |
|---|---|
| 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 |
| 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 des graphiques, l'enregistrement et les modes d'interaction.
| Fonction | Description |
|---|---|
| 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
| Fonction | Description |
|---|---|
| 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é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() | 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é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 hexbin |
| 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() | 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é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 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éthode | Description |
|---|---|
| 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é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 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| Axes.xaxis / Axes.yaxis | Obtenir 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é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 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é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 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éthode | Description |
|---|---|
| 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é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 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éthode | Description |
|---|---|
| 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é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 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é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 | Indiquer 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éthode | Description |
|---|---|
| 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é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() | Rechercher les Artists enfants correspondant à la condition |
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 pour la rastérisation |
23. Projection (les sous-classes doivent la redéfinir)
| 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 en lot |
| Axes.zorder | Obtenir/définir zorder (propriété) |
| Axes.get_figure() | Obtenir l'objet Figure parent |
| Axes.figure | Objet 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.viewLim | Limites de vue (propriété) |
| Axes.dataLim | Limites des données (propriété) |
| Axes.spines | Dictionnaire 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éthode | Description |
|---|---|
| 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.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 é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é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 le 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() | 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é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 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éthode | Description |
|---|---|
| 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é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 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
| 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 une Figure parente, avec des méthodes similaires à Figure.
Ajout d'Axes
| Méthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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éthode | Description |
|---|---|
| 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 style | Description |
|---|---|
| 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 deep de seaborn |
| seaborn-v0_8-darkgrid | style darkgrid de seaborn |
| seaborn-v0_8-deep | palette sombre seaborn |
| seaborn-v0_8-muted | palette muted de seaborn |
| seaborn-v0_8-notebook | style notebook seaborn |
| seaborn-v0_8-paper | style papier seaborn |
| seaborn-v0_8-pastel | palette pastel de 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 | style white de seaborn |
| seaborn-v0_8-whitegrid | style whitegrid de seaborn |
| 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 |
Configurations courantes de rcParams
| Parameters | Description | Exemples de valeurs |
|---|---|---|
| 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 bord 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 | Afficher ou non la bordure supérieure | True |
| axes.spines.right | Afficher ou non 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 | Emplacement par défaut de la légende | '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 | Résolution 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énarios applicables |
|---|---|---|
| Uniforme perceptuellement (Séquentiel) | viridis, plasma, inferno, magma, cividis | Donné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, 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 | Données périodiques (par ex., angles, temps) |
| 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 | Usages 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 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 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 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 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 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 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