Les types de graphiques essentiels en BI
Plotly Express propose une interface unifiée pour tous les types de graphiques : on passe un DataFrame, on spécifie les colonnes, et le rendu interactif est automatique.
Le principe commun à tous les graphiques
La signature suit le même patron quelle que soit la fonction :
fig = px.type_de_graphique(
data_frame=df,
x="colonne_x",
y="colonne_y",
color="colonne",
title="Titre",
labels={"chiffre_affaires": "CA (€)", "region": "Région"}
)
Les paramètres récurrents :
data_frame— le DataFrame pandas source (souvent passé en premier argument positionnel)x,y— les colonnes à mapper sur les axescolor— une colonne pour colorer les éléments (catégories ou valeurs continues)title— le titre du graphiquelabels— un dictionnaire pour renommer les axes et les légendes
Paramètre labels
labels remplace les noms de colonnes techniques par des libellés lisibles. Par exemple, labels={"chiffre_affaires": "CA (€)"} affichera « CA (€) » sur l'axe Y au lieu de « chiffre_affaires ». À utiliser dès qu'un graphique est destiné à un utilisateur métier.
Bar chart — comparaison entre catégories
Le bar chart est le graphique le plus courant en BI. Il sert à comparer des valeurs entre catégories discrètes.
Bar chart vertical (par défaut)
import plotly.express as px
fig = px.bar(
df_regions,
x="region",
y="chiffre_affaires",
title="CA par région",
labels={"chiffre_affaires": "CA (€)", "region": "Région"},
color="chiffre_affaires",
color_continuous_scale="Blues"
)
st.plotly_chart(fig, use_container_width=True)
Le paramètre color_continuous_scale="Blues" applique un dégradé de couleur proportionnel à la valeur, ce qui renforce visuellement la hiérarchie entre les barres.
Bar chart horizontal
Quand les labels sur l'axe X sont longs (noms de produits, régions détaillées), le bar chart horizontal est plus lisible :
fig = px.bar(
df_regions,
x="chiffre_affaires",
y="region",
orientation="h",
title="CA par région"
)
Quand utiliser orientation='h'
La règle est simple : si les labels sont longs ou nombreux, passez en horizontal. Les labels s'affichent alors sur l'axe Y, avec tout l'espace nécessaire. C'est un réflexe courant pour les classements (top 10, top N).
Bar chart groupé
Pour comparer deux métriques côte à côte, il faut d'abord restructurer le DataFrame avec melt(), puis utiliser barmode="group" :
df_melted = df_regions.melt(
id_vars="region",
value_vars=["chiffre_affaires", "nombre_ventes"],
var_name="métrique",
value_name="valeur"
)
fig = px.bar(df_melted, x="region", y="valeur", color="métrique", barmode="group")
Quel paramètre de px.bar() permet d'afficher un bar chart horizontal ?
Line chart — évolution temporelle
Le line chart visualise une évolution dans le temps. Il met en évidence les tendances, les saisonnalités et les anomalies.
Série unique
fig = px.line(
df_evolution,
x="mois",
y="chiffre_affaires",
title="Évolution mensuelle du CA",
labels={"mois": "Mois", "chiffre_affaires": "CA (€)"},
markers=True
)
st.plotly_chart(fig, use_container_width=True)
markers=True ajoute un point visible à chaque donnée. Recommandé quand il y a peu de points (12 mois, par exemple) pour distinguer les données réelles des interpolations.
Plusieurs séries
Pour comparer plusieurs catégories, ajoutez le paramètre color :
fig = px.line(
df_evolution_par_region,
x="mois",
y="chiffre_affaires",
color="region",
title="Évolution CA par région",
markers=True
)
Plotly crée automatiquement une légende cliquable : chaque série peut être masquée ou affichée d'un clic.
À quoi sert le paramètre markers=True dans px.line() ?
Pie chart et donut — répartition
Le pie chart visualise la répartition d'un total en parts. Graphique controversé (difficile de comparer des parts similaires), mais très demandé en BI.
Pie chart classique
fig = px.pie(
df_regions,
names="region",
values="chiffre_affaires",
title="Répartition du CA par région"
)
Notez la différence de paramètres par rapport aux autres graphiques : names (pas x) et values (pas y).
Donut chart
Le donut est un pie chart avec un trou central. Le paramètre hole contrôle la taille du trou (entre 0 et 1) :
fig = px.pie(
df_regions,
names="region",
values="chiffre_affaires",
hole=0.4,
title="Répartition du CA par région"
)
Pie ou Donut ?
Le donut (hole=0.4) est généralement préféré au pie chart classique. Le trou central peut accueillir un label ou une valeur totale, et il est visuellement plus léger. Valeur de hole recommandée : entre 0.3 et 0.5.
Scatter plot — corrélation
Le scatter plot positionne chaque point selon deux variables continues, pour détecter des corrélations, des clusters ou des outliers.
fig = px.scatter(
df_produits,
x="prix_unitaire",
y="volume_ventes",
size="chiffre_affaires",
color="categorie",
hover_name="produit",
title="Prix vs Volume de ventes"
)
Paramètres spécifiques au scatter :
size— une colonne numérique qui contrôle la taille des points (bubble chart)hover_name— la colonne affichée en gras au survol (nom du produit, par exemple)
Quel paramètre de px.pie() crée un donut chart ?
Tableau récapitulatif
| Type | Fonction px | Cas d'usage BI typique |
|---|---|---|
| Bar vertical | px.bar | CA par région, ventes par catégorie |
| Bar horizontal | px.bar(..., orientation="h") | Classement de produits, top N |
| Line chart | px.line | Évolution mensuelle, tendances |
| Pie / Donut | px.pie | Répartition, parts de marché |
| Scatter | px.scatter | Corrélations, détection d'outliers |
| Area chart | px.area | Évolution avec volumes cumulés |
| Box plot | px.box | Distribution, médiane, écarts |
| Heatmap | px.imshow | Matrice de corrélation, calendrier |
À retenir
Points clés
- Tous les graphiques Plotly Express suivent la même signature :
px.type(df, x=..., y=..., color=..., title=...) - Bar chart :
px.bar— vertical par défaut,orientation="h"pour horizontal,barmode="group"pour groupé - Line chart :
px.line—markers=Truepour les points,colorpour plusieurs séries - Pie / Donut :
px.pie—namesetvalues(pas x/y),hole=0.4pour un donut - Scatter :
px.scatter—sizepour le bubble chart,hover_namepour le survol - Le paramètre
labelsrend les axes lisibles pour les utilisateurs métier