← Guides

Créer des graphiques professionnels à partir d'Excel avec Python (pandas + Matplotlib)

Charger un fichier Excel, l'agréger avec pandas et exporter des graphiques en barres et en courbes propres au format PNG, prêts pour un rapport.

Python · 8 min de lecture

Par l'équipe éditoriale FormulAI · Relu en octobre 2026

Installer et charger les données

Il faut pandas, openpyxl (lecture des .xlsx) et matplotlib : pip install pandas openpyxl matplotlib. Lisez la feuille avec parse_dates pour obtenir de vraies dates, ce qui rend le regroupement mensuel immédiat.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_excel("ventes.xlsx", sheet_name="Donnees", parse_dates=["date"])
print(df.dtypes)

Agréger avant de tracer

Un graphique de milliers de points est illisible. Regroupez d'abord : totaux mensuels pour une tendance, totaux par catégorie pour une comparaison. resample('MS') regroupe par début de mois et conserve les mois vides à zéro.

mensuel = df.set_index("date")["montant"].resample("MS").sum()
par_region = df.groupby("region")["montant"].sum().sort_values()

Une courbe et des barres propres

Utilisez l'API objet (fig, ax) plutôt que plt.plot : contrôle total et pas de graphiques qui s'écrasent dans une boucle. Supprimez les bordures haute et droite, nommez les axes et formatez les milliers.

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4.5))

ax1.plot(mensuel.index, mensuel.values, marker="o")
ax1.set_title("CA mensuel")
ax1.yaxis.set_major_formatter(lambda v, _: f"{v:,.0f}".replace(",", " "))

ax2.barh(par_region.index, par_region.values)
ax2.set_title("CA par région")

for ax in (ax1, ax2):
    ax.spines[["top", "right"]].set_visible(False)

fig.tight_layout()
fig.savefig("rapport.png", dpi=200)

Des graphiques qui parlent

Triez les barres par valeur, pas par ordre alphabétique. Démarrez l'axe des barres à zéro. Utilisez une seule couleur d'accent pour le point à démontrer et du gris pour le reste. Un titre qui énonce la conclusion (« CA en hausse de 18 % depuis mars ») est bien plus lu qu'un titre neutre.

Automatiser

Encapsulez le code dans une fonction qui prend le chemin du fichier et lancez-la chaque lundi avec le Planificateur de tâches Windows ou cron. Combinez-la avec openpyxl pour insérer le PNG dans un rapport Excel (voir notre guide sur l'automatisation des rapports Excel). FormulAI génère le script complet si vous décrivez vos colonnes et le graphique voulu.

Comment ce guide a été réalisé

Chaque formule, requête et script de ce guide a été exécuté sur un vrai fichier d'exemple (Excel 365, Google Sheets, PostgreSQL, MySQL ou Python 3) avant publication. Nous documentons les cas limites rencontrés pendant les tests : nombres stockés en texte, mois vides, valeurs NULL. L'IA nous aide à rédiger et traduire ; une personne vérifie chaque exemple et met le guide à jour quand les logiciels évoluent. Une erreur ? Écrivez à contact@formulai-app.com.