Barres empilées ou groupées ?


stackedvsgrouped


Cliquer sur l'étiquette du classeur pour y accéder dans Observable


Les empilées

La série le plus en bas et la somme de toutes les séries sont bien lisibles. Mais toutes les autres sont rarement interprétables.


stack


Si la somme des séries en dessous est à peu près stable, alors l'oeil arrive à voir l'évolution individuelle de la série. Sinon c'est juste impossible. Quelle est l'évolution du bleu pale et du bleu foncé après leurs pics en 1 et 2 ?


Il existe pourtant quelques situations où les barres empilées présentent une réelle plus value. Je pense au cas où les séries sont dépendantes les unes des autres. Quand la décroissance de l'une s'explique par la croissance d'autres. Je connais plusieurs bons exemples de cette situation, qui justifient pleinement l'usage des barres empilées.


Il y a l'empilement du nombre de travaux dans chacune des catégories : A faire, En cours, En test, En validation, Terminé. Comme dans le schéma suivant.


flow


Les données ne sont pas indépendantes, les transitions d'un item d'une catégorie à une autre (A faire -> En cours) fait juste bouger la frontière sans changer le volume global. L'intérêt de la représentation est qu'elle permet de voir des quantités combinées :

  • Travail restant à faire (Remaining to be done)
  • Temps de développement (Cycle Time)
  • Travaux en cours (Work in Progress)
  • Travaux en attente (Backlog)
  • ...

Il existe aussi une belle version adaptée à la résolution de problème d'une hot-line sur des catégories : Ouvert, En investigation, Reproduit, Répondu, Fermé.

Les empilées en pourcentage

La version pourcentage des barres empilées souffre du même défaut : évolutions des séries individuelles pas lisibles. Elle est pourtant elle aussi tout à fait recommandable quand les séries sont dépendantes entre elles.


Aussi mauvais que les barres empilées simples mais capable de masquer à dessein la grandeur globale (sommes des séries) pour ne montrer que les contributions relatives.


Voici un très bon exemple :


Energie


L'intérêt de cette visualisation est de montrer la tendance générale de substitution relative des énergies primitives (muscle et feu de bois), par les énergies fossiles au travers des siècles indépendamment de l'augmentation exponentielle du montant absolu des énergies. Comme quoi il n'est pas possible de condamner complètement un type de diagramme pour mauvaise visibilité, cela dépend des données et des objectifs.

Les groupées

Si on vient de parler barres empilées, les barres groupées deviennent le moyen de voir les contributions individuelles de chaque série. Une façon de combler le talon d'Achille des empilées ? Oui pourquoi pas. Mais pas pour combien de séries ?


Passé 4 séries, les barres groupées deviennent illisibles. Et si le nombre de points dépasse 30, impraticables !


grouped

Essayez de simuler 4 séries et 10-40 points dans le simulateur en tête de ce billet.


Il y aussi des utilisations des barres groupées qui ne sont pas dans le contexte de cumul mais plutôt de comparaison.

Les barres groupées de comparaison m'inspirent de la méfiance au premier abord. Dans sa version la plus élémentaire il s'agit de montrer la différences entre deux séries.

Comme par exemple :

  • budget mensuel / dépenses mensuelles
  • mois de l'année N-1 / mois identique de l'année N
  • concurrent / notre produit
  • ...

Mais pourquoi ne pas plutôt visualiser une seule série constituée de la différence ou une solution qui évoque un cadre (budget) et un contenu (dépenses).


Blank

negativebars

IMG 7386


C'est bien plus simple et efficace pour la lecture. Bien sûr cela devient plus compliqué pour 3 ou 4 séries, mais je suis certain qu'il y a de meilleures solutions que les barres groupées.

Les petits multiples

L'expression petits multiples (small multiples en anglais) désigne l'idée de remplacer un diagramme confus contenant plein de séries par plusieurs diagrammes représentant chacun une série. L'évolution individuelle de chaque série devient entièrement visible. C'est à l'observateur de déplacer son oeil d'un diagramme à l'autre pour effectuer la comparaison entre les séries.


Il en existe plusieurs déclinaisons selon la nature des données et les aspects à mettre en avant, notamment :

  • alignés horizontalement avec la même échelle des Y pour faciliter la comparaison des valeurs smallMultiplesX
  • alignés verticalement pour faciliter la détection de corrélation de tendance (sans forcement la même échelle Y) smallMultiplesY
  • en treillis avec la même échelle Y et rappelant pourquoi pas dans chacun toutes les autres séries sur forme grisée pour expliciter la position de la série courante au milieu des autres Medecine

Il en existe un autre type que j'ai découvert récemment dans le classeur de Michael Freeman : Les petits multiples empilés.


L'originalité est de présenter les petits multiples verticalement sur un axe Y commun, permettant de jauger du cumul des séries. Une sorte de barres empilées mais qui gardent la visibilité des évolutions individuelles. L'axe X de chaque série commence au maximum de la série précédente. Une manière de répondre à la question : « Et si toutes les séries en dessous étaient à leur maximum jusqu’où peut aller le total en ajoutant la contribution de la série actuelle ? ». Les séries sont triées par ordre d’amplitude de bas en haut.


Tellement content de découvrir cette bonne idée que j'ai codé un simulateur sur Observable.


N'hésitez pas à jouer avec pour apprécier les domaines d'utilisation des différents types de représentations (faire varier nombre de séries et de points).


Pour moi, le "petits multiples" est le grand gagnant dans la majorité des situations. Qu'en pensez vous ?


Voir le simulateur en haut de ce billet
dataviz
d3
observablehq
Partager ce Billet