Si tu as déjà visualisé des données (ce dont je ne doute pas), le premier type de graphique qui te vient probablement à l’esprit est soit un nuage de points (scatter plot), un histogramme (bar plot), ou un graphique linéaire (line plot).
Pour te rafraîchir la mémoire rapidement, voici un rappel :

Bien que ces graphiques couvrent une grande variété de cas d’utilisation en visualisation, j’ai souvent constaté que de nombreux data scientists les utilisent de manière excessive, dans tous les contextes possibles.
Certes, ils sont simples et faciles à interpréter, mais ils ne conviennent pas à tous les cas d’usage.
Ainsi, dans cet article, je vais présenter quelques alternatives à ces graphiques populaires. De plus, j’expliquerai en quoi ces alternatives peuvent être plus avantageuses à utiliser.
J’ai également un post plus condensé et illustré sur ce sujet : Arrête de surutiliser les graphiques classiques ! Essaye ces 4 alternatives.
🚀 C’est parti !
#1 – Graphique Hexbin
Alternative au nuage de points
Les nuages de points (scatter plots) sont extrêmement utiles pour visualiser deux ensembles de variables numériques.
Mais lorsque tu as, disons, des milliers de points de données, les nuages de points peuvent devenir trop denses pour être interprétés. Ceci est illustré ci-dessous :
df.plot(kind = 'scatter', x = 'x', y = 'y')
Python
Dans ces cas, les Hexbins peuvent être un excellent choix. Comme leur nom l’indique, ils découpent la zone du graphique en régions hexagonales.
Chaque région se voit attribuer une intensité de couleur en fonction de la méthode d’agrégation utilisée (par exemple, le nombre de points).
df.plot(kind = 'hexbin', x = 'x', y = 'y', gridsize = 13)
Python
Quand les utiliser ?
- Analyse de densité : Les Hexbins sont particulièrement utiles pour comprendre la répartition des données
- Élégance visuelle : Alternative sophistiquée aux nuages de points classiques
- Clusters et motifs : Le binning facilite l’identification des concentrations et des tendances
#2 – Graphique de densité 2D
Une autre alternative au nuage de points
Comme nous l’avons vu précédemment, lorsque le nombre de points de données est élevé, interpréter un nuage de points pour déterminer sa distribution devient extrêmement difficile.
Similaire à un graphique Hexbin qui représente la densité des points, un graphique de densité 2D illustre la distribution d’un ensemble de points dans un espace bidimensionnel.
import seaborn as sns
sns.kdeplot(x = df.x, y = df.y, cmap = "Blues", shade = True)
Python
Un contour est créé en reliant des points de densité égale. En d’autres termes, une seule ligne de contour représente une densité égale de points de données.
Quand les utiliser ?
- Interprétation difficile : Si un nuage de points est trop dense, un graphique de densité 2D peut être une meilleure option.
- Identification de motifs et d’anomalies : Ils sont particulièrement utiles pour repérer des tendances ou des valeurs aberrantes dans les données.
- Comparaison : Les nuages de points, quant à eux, sont principalement utilisés pour représenter la relation entre deux variables numériques.
#3 – Graphique à points (Dot Plot)
Alternative aux histogrammes et graphiques linéaires
Les histogrammes (bar plots) sont extrêmement utiles pour visualiser des variables catégorielles par rapport à une valeur continue.
Cependant, lorsque tu as de nombreuses catégories à représenter, ils peuvent devenir trop denses et difficiles à interpréter.
De plus, dans un histogramme avec de nombreuses barres, nous ne prêtons souvent pas attention à la longueur individuelle de chaque barre. Au lieu de cela, nous nous concentrons principalement sur les extrémités des barres, qui indiquent la valeur totale.
Prenons l’exemple des données suivantes :
df.sample(5)
Python Year Population Country
17 1996 67 Country B
11 2006 129 Country A
0 1995 92 Country A
16 1995 72 Country B
25 2004 93 Country B
Ici, nous avons une population fictive pour deux pays (Pays A et Pays B) entre 1995 et 2010.
Créons un histogramme :
import plotly.express as px
fig = px.bar(df, x = "Year", y = "Population", color = "Country")
fig.update_layout(barmode = 'group')
fig.show()
Python
Les barres individuelles occupent beaucoup d’espace, ce qui rend le graphique encombré.
Dans de tels cas, un graphique à points (dot plot) peut être un meilleur choix. Ils ressemblent à des nuages de points, mais avec un axe catégoriel et un axe continu.
fig = px.scatter(df, x = "Year", y = "Population", color = "Country")
fig.show()
Python
Quand les utiliser ?
- Moins encombré : Comparé à un histogramme, il est plus clair et facilite la compréhension.
- Catégories multiples : Particulièrement utile lorsqu’il y a de nombreuses catégories ou plusieurs colonnes catégorielles à représenter.
#4 – Graphiques en cascade (Waterfall charts)
Alternative aux histogrammes et graphiques linéaires
Si tu souhaites visualiser la variation, la progression ou le changement d’une valeur sur une période donnée, un graphique linéaire ou un histogramme n’est pas toujours le choix le plus pertinent.
Ces deux types de graphiques représentent les valeurs réelles, ce qui peut parfois rendre difficile l’estimation visuelle de l’ampleur des changements progressifs.
Prenons les données suivantes :
print(df)
Python Month Value
0 Jan 12.1
1 Feb 11.6
2 Mar 10.4
3 Apr 15.5
4 May 16.7
5 Jun 13.6
6 Jul 16.5
7 Aug 16.0
8 Sep 14.2
9 Oct 12.5
10 Nov 15.6
11 Dec 16.9
Ici, nous avons des données mensuelles fictives.
Nous pouvons créer un graphique linéaire comme ceci :
df.plot.line("Month", "Value");
Python
Et un histogramme comme cela :
df.plot.bar("Month", "Value");
Python
Bien que ces graphiques représentent correctement les données, il est difficile d’estimer visuellement l’ampleur des variations successives.
Pour résoudre ce problème, tu peux utiliser un graphique en cascade.
Pour en créer un, tu peux utiliser la bibliothèque waterfallcharts en Python.
!pip install waterfallcharts
Ensuite, nous devons calculer la différence progressive et la représenter dans une nouvelle colonne. Les données finales devraient ressembler à ceci :
print(df)
Python Month Value Delta
0 Jan 12.1 12.1
1 Feb 11.6 -0.5
2 Mar 10.4 -1.2
3 Apr 15.5 5.1
4 May 16.7 1.2
5 Jun 13.6 -3.1
6 Jul 16.5 2.9
7 Aug 16.0 -0.5
8 Sep 14.2 -1.8
9 Oct 12.5 -1.7
10 Nov 15.6 3.1
11 Dec 16.9 1.3
La valeur Delta du premier mois est la même que la valeur de départ :
import waterfall_chart
waterfall_chart.plot(df.Month, df.Delta)
Python
Bien mieux, n’est-ce pas ?
Ici, les valeurs de début et de fin sont représentées par la première et la dernière barre. De plus, les changements marginaux sont automatiquement colorés, ce qui les rend plus faciles à interpréter.
Quand les utiliser ?
Un graphique en cascade est extrêmement utile pour représenter les contributions progressives de chaque étape à une valeur totale, et comment ces contributions ont évolué dans le temps.
Conclusion
Félicitations ! Tu viens d’ajouter quatre graphiques incroyables à ta boîte à outils de visualisation de données.
Avant de terminer cet article, comprends bien que les visualisations sont toujours destinées à représenter les données de manière attrayante et interprétable. Choisis donc celle qui correspond à ton objectif et qui est simple à comprendre visuellement.
De plus, mon intention dans cet article n’est pas de dénigrer les trois types de graphiques les plus fondamentaux en data science.
Il s’agit plutôt de te faire découvrir d’autres alternatives et de t’indiquer quand les utiliser.