Choisir le bon graphique
Savoir créer un bar chart ou un line chart ne suffit pas — il faut savoir quand utiliser chaque type. Un graphique mal choisi peut être trompeur ou inutile. Cette page propose un cadre de décision.
Le principe : question analytique → type de graphique
Le choix du graphique dépend de la question analytique que vous cherchez à répondre, pas des données elles-mêmes. Le même DataFrame peut être visualisé de trois façons différentes selon la question posée.
| Question analytique | Type de graphique | Fonction Plotly Express |
|---|---|---|
| Comparer des catégories | Bar chart | px.bar |
| Suivre une évolution dans le temps | Line chart | px.line |
| Montrer une répartition (parts d'un tout) | Pie / Donut chart | px.pie |
| Explorer une relation entre deux variables | Scatter plot | px.scatter |
| Montrer la distribution d'une variable | Box plot | px.box |
| Visualiser un volume cumulé dans le temps | Area chart | px.area |
| Visualiser les corrélations entre variables | Heatmap | px.imshow |
Arbre de décision
Règle d'or
En cas de doute, commencez par un bar chart. C'est le graphique le plus lisible et le plus universellement compris. Vous pourrez toujours affiner ensuite.
Graphiques complémentaires : area, box, heatmap
Trois types complémentaires aux quatre graphiques principaux (bar, line, pie, scatter).
Area chart — volume cumulé dans le temps
L'area chart est un line chart avec la zone sous la courbe remplie. Il met en valeur le volume autant que la tendance.
import plotly.express as px
fig = px.area(
df_evolution,
x="mois",
y="chiffre_affaires",
color="region",
title="Évolution du CA par région (cumulé)",
labels={"chiffre_affaires": "CA (€)", "mois": "Mois"}
)
st.plotly_chart(fig, use_container_width=True)
Quand choisir area plutôt que line ?
L'area chart est pertinent pour montrer la contribution de chaque catégorie au total au fil du temps. Les zones empilées montrent à la fois la tendance globale et la part de chaque série. Pour une seule série, un line chart est plus lisible.
Box plot — distribution et écarts
Le box plot résume la distribution d'une variable : médiane, quartiles, valeurs extrêmes. Utile pour comparer les distributions entre catégories.
fig = px.box(
df_produits,
x="categorie",
y="prix_unitaire",
title="Distribution des prix par catégorie",
labels={"prix_unitaire": "Prix unitaire (€)", "categorie": "Catégorie"}
)
st.plotly_chart(fig, use_container_width=True)
Le hover affiche automatiquement la médiane, les quartiles Q1/Q3 et les bornes (min/max hors outliers). Les points au-delà des moustaches sont des outliers — des valeurs atypiques qui méritent attention.
Heatmap — matrice de corrélation
La heatmap visualise une matrice de valeurs numériques avec un code couleur. Usage courant en BI : la matrice de corrélation.
import plotly.express as px
# Calculer la matrice de corrélation
corr_matrix = df[["prix_unitaire", "volume_ventes", "chiffre_affaires", "marge"]].corr()
fig = px.imshow(
corr_matrix,
text_auto=".2f",
color_continuous_scale="RdBu_r",
title="Matrice de corrélation"
)
st.plotly_chart(fig, use_container_width=True)
Le paramètre text_auto=".2f" affiche les valeurs de corrélation directement sur chaque cellule (formatées à 2 décimales). color_continuous_scale="RdBu_r" applique un dégradé rouge-bleu classique pour les corrélations.
Quel graphique choisir pour montrer la répartition du chiffre d'affaires entre 4 régions ?
Erreurs courantes à éviter
Pie chart avec trop de catégories
Un pie chart avec 15 catégories est illisible — les parts sont trop petites pour être comparées. Au-delà de 5-6 catégories, utilisez un bar chart horizontal trié par valeur décroissante.
Règle des 6 catégories
Si votre variable a plus de 6 catégories, abandonnez le pie chart. Regroupez les petites catégories dans « Autres » ou passez à un bar chart horizontal. Un bar chart avec 20 catégories reste lisible ; un pie chart avec 20 parts ne l'est jamais.
Bar chart pour une série temporelle
Un bar chart mensuel peut fonctionner, mais il masque la tendance. Le line chart connecte les points et rend la tendance perceptible. Réservez le bar chart temporel aux comparaisons de périodes discrètes (T1 vs T2, année N vs N-1).
Scatter plot avec trop peu de points
Un scatter plot avec 5 points ne révèle aucune corrélation — il faut au minimum une vingtaine de points pour qu'un pattern émerge. Avec peu de données, un tableau ou un bar chart est plus informatif.
Pourquoi un pie chart avec 15 catégories est-il déconseillé ?
Quel graphique est le plus adapté pour visualiser la corrélation entre prix unitaire et volume de ventes ?
Exercice : Choisir le bon graphique
Pour chacune des questions analytiques suivantes, indiquez le type de graphique le plus adapté et la fonction Plotly Express correspondante :
- « Quel est le chiffre d'affaires de chaque catégorie de produits ? »
- « Comment le nombre de commandes évolue-t-il mois par mois sur l'année 2024 ? »
- « Existe-t-il une corrélation entre le prix unitaire et la quantité vendue ? »
Pour chaque question, justifiez votre choix en une phrase.
À retenir
Points clés
- Le choix du graphique dépend de la question analytique, pas des données
- Comparaison → bar chart | Tendance → line chart | Répartition → pie/donut | Relation → scatter
- Distribution → box plot | Volume cumulé → area chart | Corrélations → heatmap
- Pie chart : maximum 5-6 catégories, sinon passer au bar chart horizontal
- En cas de doute, commencez par un bar chart — c'est le graphique le plus lisible