4 alternatives puissantes visualisation donnees

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 :

3 graph classiques
Visualisation des données : dispersion, barres et courbes

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
Scatterplot
Diagramme de dispersion sur des données fictives

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
Hexbin
Graphique hexagonal sur des données fictives

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
Kdeplot
Graphique de densité 2D sur des données fictives

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
Barplot
Diagramme à barres sur des données fictives

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
Scatterplot 2
Diagramme à points sur des données fictives

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
Lineplot
Graphique linéaire sur des données fictives

Et un histogramme comme cela :

df.plot.bar("Month", "Value");
Python
Histogram
Diagramme à barres sur des données fictives

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
Waterfall
Graphique en cascade sur des données fictives

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.

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *