Menu
CoddyTech

Aide-mémoire Matplotlib

Dernière mise à jour

Figure et axes

Une figure est l'image entière. Un axes est un graphique à l'intérieur, et presque tous les appels ci-dessous sont des méthodes de ax.

TâcheCode
Importer pyplotimport matplotlib.pyplot as plt
Une figure avec un graphiquefig, ax = plt.subplots()
Définir la taille en poucesfig, ax = plt.subplots(figsize=(8, 4))
Dessiner sur les axesax.plot(x, y)
Afficher la figureplt.show()
Enregistrer en PNG netfig.savefig("chart.png", dpi=150, bbox_inches="tight")
Enregistrer en vectorielfig.savefig("chart.svg"), fig.savefig("chart.pdf")
Fond transparentfig.savefig("chart.png", transparent=True)
Fermer une figure pour libérer la mémoireplt.close(fig)
Style pyplot rapide pour un seul graphiqueplt.plot(x, y) plt.title("Quick look") plt.show()

Types de graphiques

TâcheCode
Courbeax.plot(x, y)
Nuage de pointsax.scatter(x, y, s=20, alpha=0.7)
Nuage coloré par valeur, avec barre de couleurspoints = ax.scatter(x, y, c=y, cmap="viridis") fig.colorbar(points, ax=ax)
Diagramme en barresax.bar(cats, a)
Barres horizontalesax.barh(cats, a)
Barres empiléesax.bar(cats, a, label="2025") ax.bar(cats, b, bottom=a, label="2026")
Barres groupéespos = np.arange(len(cats)) ax.bar(pos - 0.2, a, width=0.4) ax.bar(pos + 0.2, b, width=0.4) ax.set_xticks(pos, labels=cats)
Histogrammeax.hist(data, bins=30)
Boîte à moustachesax.boxplot([data, data * 2], tick_labels=["A", "B"])
Diagramme en violonax.violinplot([data, data * 2])
Camembertax.pie([40, 35, 25], labels=cats, autopct="%1.0f%%")
Bande entre deux courbesax.fill_between(x, y - 0.2, y + 0.2, alpha=0.3)
Barres d'erreurax.errorbar([1, 2, 3], [4, 5, 3], yerr=[0.5, 0.3, 0.6], fmt="o", capsize=4)
Graphique en escalierax.step(x, y, where="mid")
Heatmap d'un tableau 2Dimage = ax.imshow(np.random.default_rng(0).random((5, 5)), cmap="magma") fig.colorbar(image, ax=ax)
Courbes de niveau rempliesX, Y = np.meshgrid(x, x) ax.contourf(X, Y, np.sin(X) * np.cos(Y), levels=20)
Densité de nombreux pointsax.hexbin(data, data + np.random.default_rng(1).normal(size=200), gridsize=20)
Ligne de référence horizontale ou verticaleax.axhline(0, color="gray", linestyle="--"), ax.axvline(5)
Ombrer un intervalleax.axvspan(2, 4, alpha=0.2)

Lignes, marqueurs et couleurs

TâcheCode
Couleur, épaisseur et style de ligneax.plot(x, y, color="tab:red", linewidth=2, linestyle="--")
Marqueurs sur les pointsax.plot(x, y, marker="o", markersize=4)
Chaîne de format courteax.plot(x, y, "g--o")
Transparenceax.plot(x, y, alpha=0.5)
Styles de ligne"-", "--", "-.", ":"
Codes des marqueurs"o", "s", "^", "x", ".", "*"
Façons de nommer une couleur"tab:blue", "C1", "#1f77b4", (0.2, 0.4, 0.6)
n couleurs d'une colormapcolors = plt.colormaps["viridis"](np.linspace(0, 1, 5))
Ton propre cycle de couleursax.set_prop_cycle(color=["#0b7285", "#e8590c", "#5f3dc4"])
Barres avec contour et hachuresax.bar(cats, a, color="white", edgecolor="black", hatch="//")

Titres, libellés et légendes

TâcheCode
Titre et libellés des axesax.set_title("Sales"), ax.set_xlabel("Month"), ax.set_ylabel("EUR")
Tout en un seul appelax.set(title="Sales", xlabel="Month", ylabel="EUR")
Légende à partir des labelsax.plot(x, y, label="sin") ax.legend()
Position et colonnes de la légendeax.legend(loc="upper right", ncols=2, frameon=False)
Légende hors du graphiqueax.legend(loc="center left", bbox_to_anchor=(1, 0.5))
Texte à une position des donnéesax.text(5, 0.5, "note")
Annotation avec une flècheax.annotate("peak", xy=(1.57, 1), xytext=(3, 1.2), arrowprops=dict(arrowstyle="->"))
Valeurs sur les barresbars = ax.bar(cats, a) ax.bar_label(bars)
Titre de toute la figurefig.suptitle("Q1 report")
Maths dans les libellésax.set_xlabel(r"$\alpha$ (rad)")

Axes, graduations et échelles

TâcheCode
Limites des axesax.set_xlim(0, 10), ax.set_ylim(bottom=0)
Échelle logarithmiqueax.set_yscale("log")
Choisir les graduations et leurs libellésax.set_xticks([0, 5, 10], labels=["start", "middle", "end"])
Faire pivoter les libellésax.tick_params(axis="x", labelrotation=45)
Quadrillageax.grid(True, alpha=0.3)
Axe en pourcentagefrom matplotlib.ticker import PercentFormatter ax.yaxis.set_major_formatter(PercentFormatter(1.0))
Séparateur de milliersax.yaxis.set_major_formatter("{x:,.0f}")
Masquer les bordures haute et droiteax.spines[["top", "right"]].set_visible(False)
Second axe y à droiteax2 = ax.twinx() ax2.plot(x, y * 100, color="tab:orange")
Même échelle sur les deux axesax.set_aspect("equal")
Inverser un axeax.invert_yaxis()
Masquer complètement les axesax.axis("off")
Dates lisibles sur l'axefig.autofmt_xdate()

Subplots et mise en page

plt.subplots(rows, cols) renvoie un tableau NumPy d'axes. Indexe-le comme un tableau.

TâcheCode
Grille de graphiquesfig, axs = plt.subplots(2, 2, figsize=(8, 6))
Dessiner sur l'un d'euxaxs[0, 1].plot(x, y)
Boucler sur tousfor ax in axs.flat: ax.grid(True)
Partager un axe entre graphiquesfig, axs = plt.subplots(1, 3, sharey=True)
Espacement sans chevauchementfig, axs = plt.subplots(2, 2, layout="constrained")
Corriger les chevauchements après le tracéfig.tight_layout()
Colonnes de largeurs différentesfig, axs = plt.subplots(1, 2, width_ratios=[3, 1])
Mise en page nommée avec un panneau largefig, axd = plt.subplot_mosaic([["top", "top"], ["left", "right"]]) axd["top"].plot(x, y)
Petit graphique dans un graphiqueinset = ax.inset_axes([0.6, 0.6, 0.35, 0.35])
Masquer un panneau videaxs[0].axis("off")

Styles et réglages par défaut

TâcheCode
Utiliser un style intégréplt.style.use("ggplot")
Lister les stylesplt.style.available
Look seaborn sans seabornplt.style.use("seaborn-v0_8-whitegrid")
Style pour une seule figurewith plt.style.context("dark_background"): fig, ax = plt.subplots()
Taille de police par défautplt.rcParams["font.size"] = 12
Taille et résolution par défaut des figuresplt.rcParams["figure.figsize"] = (8, 4), plt.rcParams["figure.dpi"] = 120
Revenir aux réglages par défautplt.style.use("default")
Colormaps courantes : séquentielle, divergente, gris"viridis", "coolwarm", "Greys"

Tracer depuis pandas

pandas trace avec Matplotlib. Passe ax= pour dessiner dans tes propres axes, ou garde le ax que pandas renvoie.

TâcheCode
Colonnes d'un DataFrame dans tes axesdf.plot(x="month", y="sales", ax=ax)
Barres d'un résumé par groupedf.groupby("city")["sales"].sum().plot.bar(ax=ax)
Personnaliser ce que pandas a tracéax = df.plot(x="month", y="sales") ax.set_title("Sales")
Colonnes directement dans Matplotlibax.plot(df["month"], df["sales"])

Matplotlib 3.11 : anciennes syntaxes et quoi écrire maintenant

Le code copié d'anciens tutoriels peut échouer ou déclencher des avertissements avec Matplotlib 3.11. Écris plutôt la version de la colonne Matplotlib 3.11.

TâcheMatplotlib 3.11Ancienne syntaxe
Libellés d'une boîte à moustachesax.boxplot([data, data * 2], tick_labels=["A", "B"])labels=["A", "B"]
Boîte ou violon horizontalax.boxplot(data, orientation="horizontal")vert=False
Récupérer une colormapplt.colormaps["viridis"]plt.cm.get_cmap("viridis")
Style seabornplt.style.use("seaborn-v0_8")plt.style.use("seaborn")

Le code Matplotlib dont tu as besoin pour transformer des données en graphique clair, classé par tâche : figure et axes, types de graphiques, lignes et couleurs, titres et légendes, axes et graduations, subplots et mise en page, styles, et tracés depuis pandas. Chaque ligne donne un court extrait à copier-coller, avec une phrase qui explique ce qu'il fait.

Tout utilise le style orienté objet (fig, ax = plt.subplots(), puis des méthodes sur ax) et est écrit pour Matplotlib 3.11, la version utilisée par Coddy. Les anciennes syntaxes comme labels= dans boxplot n'apparaissent que dans le dernier tableau, à côté de ce qu'il faut écrire à la place. Les exemples utilisent x = np.linspace(0, 10, 50), y = np.sin(x) et un échantillon de valeurs normales appelé data. Tu débutes en Python ? Commence par l'aide-mémoire Python, et garde les aide-mémoire pandas, NumPy et scikit-learn à portée de main.

FAQ de l'aide-mémoire Matplotlib

Cet aide-mémoire Matplotlib est-il gratuit ?
Oui. Cet aide-mémoire Matplotlib est entièrement gratuit, sans inscription. Ajoute-le à tes favoris ou imprime-le en PDF depuis ton navigateur, et reviens dès que tu as besoin de l'appel exact pour une légende, une grille de subplots ou une barre de couleurs.
Quelle est la différence entre plt et ax ?
plt.plot() dessine sur les axes courants, ce qui est rapide pour un seul graphique. fig, ax = plt.subplots() te donne la figure et les axes sous forme d'objets, donc ax.plot() dessine toujours exactement là où tu veux. Utilise le style ax dès qu'il y a plus d'un graphique, et pour le code que tu comptes garder.
Comment changer la taille de la figure ?
Passe figsize en pouces quand tu crées la figure : fig, ax = plt.subplots(figsize=(10, 5)). Pour changer la valeur par défaut de toutes les figures, définis plt.rcParams["figure.figsize"] = (10, 5). La taille en pixels d'un fichier enregistré vaut figsize multiplié par dpi.
Comment enregistrer un graphique en haute résolution ?
Appelle fig.savefig("chart.png", dpi=300, bbox_inches="tight"). Un dpi plus élevé donne un PNG plus net, et bbox_inches="tight" supprime les marges vides. Pour l'impression ou des slides, enregistre en SVG ou en PDF, qui restent nets à toutes les tailles.
Pourquoi les titres et libellés de mes subplots se chevauchent-ils ?
Crée la figure avec layout="constrained", comme dans plt.subplots(2, 2, layout="constrained"), et Matplotlib fait de la place pour les titres, les libellés et les barres de couleurs. Sur une figure existante, appelle fig.tight_layout() après le tracé.
Quelle version de Matplotlib cet aide-mémoire couvre-t-il ?
Matplotlib 3.11, la version utilisée par Coddy. Les appels supprimés ou renommés dans les versions récentes, comme labels= dans boxplot (désormais tick_labels=) et plt.cm.get_cmap (désormais plt.colormaps[...]), figurent dans le dernier tableau, à côté de ce qu'il faut écrire à la place.
Puis-je exécuter du code Matplotlib en ligne ?
Oui. Le playground Matplotlib gratuit exécute Python avec Matplotlib, NumPy, pandas et scikit-learn dans ton navigateur et affiche tes figures à côté de la sortie : tu peux coller n'importe quel extrait de cet aide-mémoire et voir le graphique sans rien installer. Le cours Machine Learning de Coddy utilise ces graphiques pour explorer les données avant d'entraîner un modèle.
Illustration des langages de programmation de Coddy

Apprenez Matplotlib avec Coddy

COMMENCER