Du bon usage du donut chart

Parmi les visuels disponibles dans Power BI comme dans tous les outils de Self Service BI, le camembert (graphique en secteur) et le graphique en anneaux (donut chart) font partie des plus utilisés … pour le plus grand malheur des consultants en Business Intelligence.

Imaginons que je souhaite représenter graphiquement la répartition des ventes d’un certain nombre de produits (produit A à produit F).

En utilisant un camembert ou un donut, je vais rapidement me retrouver à produire ce genre de visuels : le lecteur doit faire l’effort d’extraire les valeurs distinctes d’un seul et même graphique. Les pourcentages les plus faibles sont difficilement identifiables. Bref, le graphique est illisible et, par conséquent, inutilisable.

ONE MORE DONUT

Puisque le donut ne nous permet pas de représenter cette répartition, pourquoi ne pas ajouter quelques mesures à notre modèle de données pour pouvoir au final utiliser … un autre donut ?

Oui, vous avez bien lu, le donut peut être un excellent visuel si on se contente d’afficher le pourcentage de répartition de l’élément sélectionné par rapport au tout.

On ne va plus représenter sur un seul graphique l’ensemble des ventes de chaque produit, mais, en le couplant avec un slicer, nous allons afficher le pourcentage de ventes du produit sélectionné par rapport à la totalité des ventes.

Un peu comme nous l’aurions fait avec une jauge (également si pertinemment appelé « half-donut »).

Sauf que le donut, à la différence de la jauge, ne permet pas nativement de représenter une valeur unique de type pourcentage. Si on tente tout de même de le faire, tous les donuts et camemberts du monde vous afficherons un désolant « 100% ». Ce n’est bien entendu pas le résultat escompté.

UN PEU DE DAX

La première étape pour transformer notre valeur en pourcentage est de faire appel à quelques mesures DAX.

Nous allons définir quatre mesures : PARTOF, RESTOF, PART % et OTHER %

PARTOF représente la valeur numérique attendue. La valeur de cette mesure dépendra du produit (ou de n’importe quel élément de ma dimension) sélectionné.

PARTOF = SUM(Dispatch[Value])

RESTOF représente la somme des valeurs pour tous les autres produits (on n’échappe pas à un petit CALCULATE suivi d’un ALL afin de garantir que la somme totale soit identique quel que soit le produit sélectionné).

RESTOF = CALCULATE(SUM(Dispatch[Value]);ALL(Dispatch[Item])) - [PARTOF]

PART% et OTHER % ne sont que la retranscription en pourcentage de nos deux valeurs.

PART % = [PARTOF] / CALCULATE(SUM(Dispatch[Value]);ALL(Dispatch[Item]))

OTHER % = 1 - [PART %]

Vous l’avez compris, ce sont ces deux dernières mesures que nous allons faire figurer sur le donut chart.

RELOOKING EXTRÊME

Vous pourriez utiliser directement les étiquettes de données et la légende du donut chart mais cela ne serait pas très « clean ». L’utilisateur final ne doit voir que la valeur de PART % et le nom de la mesure associée.

Pour cela nous allons :

  • Supprimer les étiquettes de données et la légende du donut
  • Modifier les couleurs des données. En particulier, la couleur de REST % doit presque se confondre avec la couleur d’arrière plan. Seule la couleur de PART % doit attirer l’œil.

Après ces réglages, cela commence à prendre forme.

ON COMPLETE AVEC UNE CARTE

Enfin pour afficher la valeur et le nom de la mesure (renommée pour l’utilisateur final), nous pouvons utiliser une carte qui aura les mêmes dimensions que le donut. Les deux visuels seront centrés et les tailles de données et d’étiquettes seront ajustées afin que la carte s’affiche parfaitement au centre du donut.

Au final, en quelques mesures DAX (on peut masquer les mesures intermédiaires une fois le rapport finalisé), nous pouvons intégrer à nos tableaux de bords des « jauges à 360 degrés » représentant un indicateur en pourcentage, qu’il s’agisse de répartition de ventes, d’un taux de service ou encore d’un taux de couverture réseau.

Quel que soit l’indicateur à produire, le résultat final ne nécessite que quelques mesures calculées et aucune connaissance approfondie du langage DAX.

Je vous invite à regarder la vidéo de démonstration que j’ai réalisée.
N’hésitez pas à partager ici ou sur ma chaîne Youtube vos commentaires et vos réalisations basées sur ce tutoriel.

A bientôt