Comment visualiser des données asymétriques sur des centaines de catégories ? J'ai expérimenté un nouveau formulaire de graphique qui pourrait aider à cela. Je l'appelle "bars emballés". C'est la synthèse d'un histogramme ordonné et d'un treemap. Voici à quoi ressemble un graphique à barres rempli avec les récentes données de capitalisation boursière du S&P 500.

Les barres bleues "primaires" et l'axe forment un graphique à barres ordonné régulier montrant les 12 plus grandes sociétés par capitalisation boursière. Chaque barre grise "secondaire" représente l'une des autres sociétés. Certaines des barres secondaires peuvent être étiquetées si l'espace le permet, mais leur objectif principal est de fournir un contexte pour les barres principales. L'idée est de soutenir la Focus+Contexte principe de visualisation des données.
Nous pouvons avoir une idée approximative du nombre de catégories secondaires, de leur taille totale et même de la répartition des tailles. Et comme elles sont à la même échelle que les barres primaires, nous pouvons même estimer certaines des valeurs à partir de la longueur qu'elles s'étendent sur l'axe. Dans un affichage dynamique, les étiquettes de catégorie et les valeurs des catégories secondaires sont accessibles via des étiquettes de survol.
Le bord droit n'est pas toujours aussi uniforme, mais en plaçant les plus grandes barres secondaires en premier de gauche à droite, cela fonctionne généralement assez bien.
Exemples
Parfois, les valeurs sont tellement faussées que le remplissage secondaire ne dépasse pas les barres principales. C'est le cas lorsque l'on trace les économies mondiales en fonction du PIB nominal. Ce graphique à barres bien rempli met en évidence les sept premières économies mondiales sur 192. (Pas tout à fait le même que le G7 , d'ailleurs).

Le choix de seulement quatre catégories principales met en évidence le fait que l'économie américaine représente environ un quart du PIB nominal mondial.

Si la somme des catégories secondaires correspond à la même échelle que les barres principales, elles peuvent être regroupées dans une barre distincte comme celle-ci.

L'économie n'est pas la seule source de données biaisées. Voici le nombre d'effets secondaires à partir des données d'essais sur les médicaments à base de nicardipine.

La taille des barres représente le nombre d'occurrences et la couleur représente la gravité moyenne. Les couleurs secondaires sont toujours estompées pour garder les catégories principales au point, mais elles ne doivent pas nécessairement l'être si une représentation plus fidèle des couleurs est importante.
L'ensemble de données qui m'a lancé dans cette voie était une collection de noms de chiens enregistrés à New York. Voici ma création mettant en avant le top 25 de plus de 16 000 noms.

Contrairement aux autres exemples de barres emballées, les catégories secondaires ont été placées par ordre alphabétique et ligne par ligne pour prendre en charge la recherche d'un nom de chien particulier (à l'aide d'étiquettes de survol). L'inconvénient de cet arrangement est que le bord droit est nettement moins uniforme.
Un avantage d'avoir un véritable axe x (contrairement à un treemap) est la possibilité d'estimer la somme globale pour l'ensemble de la population. Dans ce cas, nous avons 25 lignes, et chacune va à un peu plus de 4 000 sur l'axe de comptage. Nous pouvons estimer le nombre de chiens à 25 x 4 000+ = 100 000+.
L'exemple de la nicardipine a montré l'utilisation d'une échelle de couleur continue pour les barres. Avec la coloration catégorique, la décoloration est moins susceptible de compliquer l'interprétation des couleurs. Dans cette vue des noms de chiens, j'ai utilisé l'orange pour les noms qui se terminent par un son "y".

Variantes
J'ai expérimenté des variations, et les exemples ci-dessus en démontrent beaucoup. Lors de la construction d'un histogramme condensé, nous pouvons choisir parmi les options suivantes :
Combien de rangées ? Existe-t-il un bon défaut général ? Un nombre rond comme 10 facilite l'application de l'astuce de multiplication pour obtenir la grande somme, mais le rapport d'aspect peut être plus important.
Placer les barres secondaires de gauche à droite par taille ou ligne par ligne par ordre alphabétique ? La taille de gauche à droite signifie que la position du bord gauche de chaque barre secondaire correspond à l'ordre de tri par taille, quelle que soit la ligne. Plus la barre est grande, plus elle est à gauche. Dans un sens, cela correspond aux barres primaires classées par taille et présente l'avantage d'un bord droit plus propre. Et garder ensemble des tailles similaires peut être utile pour comprendre la distribution. L'ordre alphabétique ligne par ligne est plus utile pour trouver des catégories particulières dans un affichage interactif. Les barres secondaires sont placées par ordre alphabétique, de gauche à droite dans chaque rangée, en commençant par la rangée du haut.
Coloration des barres secondaires ? J'ai essayé des gris aléatoires, des couleurs délavées et des couleurs vraies. La randomisation des gris rend les lignes de séparation inutiles (évitant les gris en double consécutifs).
Etiquetage des barres primaires ? Placer les étiquettes sur un axe à l'extérieur de la zone du graphique évite la contrainte d'ajustement à l'intérieur de la barre. Mais placer les étiquettes principales à l'intérieur des barres permet de les distinguer d'un graphique à barres empilées et est plus efficace en termes d'espace.
Etiquetage des barres secondaires ? Au départ, je préférais qu'il n'y ait pas d'étiquettes secondaires pour souligner leur contexte rôle, mais avoir quelques étiquettes semble être d'une grande aide pour les nouveaux téléspectateurs qui ne savent pas trop ce qui se passe.
Pile séparée pour les barres secondaires ? Une pile "Autre" est possible lorsque les données sont tellement asymétriques que la somme de toutes les valeurs secondaires est sur la même échelle que les barres principales.
Fusionner tout ou partie des barres secondaires dans une « autre » région solide ? Cela conserverait la majeure partie de l'aspect contextuel, rendrait le bord droit lisse et rendrait l'affichage moins bruyant. Mais il donne quelques informations sur la cardinalité et la distribution des grandeurs secondaires.
Alternatives
Comment les barres remplies se comparent-elles aux autres moyens de visualiser des données asymétriques avec de nombreuses catégories ?
- Comparé à un diagramme à bandes des catégories principales, le graphique à barres condensé obtient le contexte des catégories restantes. Le principal inconvénient est que les barres secondaires agrandissent le graphique (ou que les barres principales rétrécissent) et occupent de l'espace qui pourrait être utilisé pour les étiquettes ou les annotations.
- Par rapport à cartes arborescentes , les barres emballées ont en général des représentations de données plus précises (longueurs de barres sur un axe par rapport aux zones sans axe), mais le plus grand avantage est de voir les catégories principales, qui obtiennent des étiquettes proéminentes et des tailles alignées sur les axes. Cependant, les treemaps prennent en charge l'imbrication et le véritable remplissage d'espace (pas de bord droit irrégulier). Et les petites valeurs peuvent être mieux représentées dans les treemaps dans le sens où il est plus facile de voir un rectangle de 3x4 pixels qu'une barre de 1x12 pixels. Bien que les axes des barres compactes apportent de la précision, ils occupent de l'espace, ce qui rend les treemaps plus économes en espace.
- Par rapport à bulles emballées (comme dans le tableau original des bulles de noms de chiens ), les barres remplies ont un placement plus régulier pour le balayage et l'avantage perceptif de la longueur par rapport à la zone du cercle pour représenter les valeurs de données. Cependant, comme pour les treemaps, les petites valeurs peuvent être plus faciles à distinguer sous forme de bulles (un cercle de 4 pixels de diamètre par rapport à une barre de 1x12 pixels).
- Comparé à un nuage de points unidimensionnel , les barres remplies ajoutent des étiquettes bien visibles et alignées pour les catégories principales et le sens de la somme cumulée. Un nuage de points a l'avantage d'utiliser un codage positionnel précis pour toutes les valeurs et de garder le canal de taille disponible pour une autre variable ; mais la sur-frappe doit être contrée par la gigue ou l'esquive, ce qui peut être problématique avec des données très biaisées.
- Par rapport à barres enveloppées , qui réorganisent les barres en plusieurs colonnes, les barres pleines sont plus économes en espace, ce qui aide à prendre en charge plus de catégories (1 000 au lieu de 100), et les barres pleines ajoutent une impression de surface totale. Barres emballées permettre une lecture plus précise de la "secondaire" les valeurs de barre puisque leurs bases sont alignées, et les barres enveloppées devraient avoir une courbe d'apprentissage plus faible car elles ressemblent davantage à des graphiques à barres ordinaires.
Désavantages
La principale critique des barres emballées est la ressemblance avec barres empilées , ce qui laisse croire que les barres de chaque ligne sont liées les unes aux autres. J'ai rendu les écarts entre les piles plus petits que d'habitude pour un graphique à barres empilées dans le but de réduire cette confusion potentielle, mais je ne suis pas sûr qu'elle puisse être éliminée. J'espère que les avantages l'emportent sur cet obstacle.
D'autres inconvénients sont en grande partie des compromis qui pourraient être résolus par des choix dans les options énumérées ci-dessus. Par exemple, si les gris aléatoires semblent trop gênants, les barres secondaires peuvent être colorées d'une autre manière ou fusionnées ensemble comme une simplification intentionnelle.
Guide annoté
Cette photo suivante n'est pas pour vous; c'est pour ceux qui ont parcouru le post en ne regardant que les photos.

Essayez-le dans JMP
Bien que cet effort soit encore expérimental, j'ai joint un script JSL pour créer la variation la plus simple d'un graphique à barres emballé dans JMP . Cela fonctionne en appliquant d'abord la logique de conditionnement aux données, en créant des variables synthétiques de numéro de ligne et de couleur. Ensuite, il crée un graphique à barres empilées standard dans Graph Builder avec la coloration et la disposition d'un graphique à barres condensé.
Qu'en penses-tu?
Je pense que les barres compactes peuvent être utiles pour certains types de données, mais je me rends compte que je suis trop impliqué pour être objectif. Je recherche donc des commentaires sur tous les aspects de cet effort : mise en page, terminologie, étiquetage, couleurs, etc. Et s'il vous plaît, faites-moi savoir si vous avez des données qui pourraient bénéficier de cet affichage - je peux l'essayer pour vous en utilisant mon prototype .J'ai été tweeter plus d'exemples; si vous êtes intéressé, consultez noms de chiens selon le sexe et les dommages aux produits comptent . Si vous souhaitez essayer de créer des graphiques à barres emballés sur d'autres plates-formes de création de graphiques, c'est également très bien.
Merci d'avoir jeté un coup d'œil !
Mises à jour août 2017 : En plus du script JMP joint, il existe désormais un complément Excel et un script d3.js pour créer des graphiques à barres compacts. Ils peuvent être trouvés au zone github de barres emballées . Le complément a été réalisé grâce à une collaboration avec un expert Excel dataviz, Jon Peltier . Une affiche de bars bondés a été acceptée pour le IEEEVIS conférence en octobre. La soumission de l'affiche nécessitait une Vidéo d'aperçu de 25 secondes ; une version GIF animée avec des légendes au lieu de l'audio est jointe.
C'est bon à entendre, Mark - merci ! Et merci de l'avoir essayé avec des données réelles. Heureux que vous ayez compris l'application Pareto et l'aspect détails à la demande.
Si vous avez des "trucs secrets" anonymisés que je peux utiliser, merci de les transmettre - c'est toujours bien d'avoir des exemples pratiques.
J'ai tweeté une galerie de graphiques, btw.
Malheureusement, vous ne pouvez pas facilement contrôler l'espacement des barres dans JMP 13. Il y a quelques astuces si vous voulez vraiment obtenir l'effet, mais sinon le script ne fait qu'approximer l'apparence des barres emballées.
J'ai eu une progression intéressante de réactions à travers ce post 
Mes premières réactions étaient du genre "ce n'est pas vraiment nouveau, nous avons fait ce... oh, attendez, non, c'est différent..." plusieurs fois de suite.
Je pense que cette technique a beaucoup de potentiel pour les grands ensembles de données ordonnés. Il me semble que toutes les lacunes qu'il a sont déjà inhérentes aux treemaps, et que cette technique améliore ces lacunes.
Je pense que le potentiel de confusion est élevé, au départ. Faire comprendre au public la différence entre this et un treemap, ou this et une barre empilée peut être un défi dans certains cas.
Mais je pense que cela vaut la peine d'être exploré, et je préférerais *beaucoup* tracer mes données dans ce format qu'un treemap standard.
Bon travail.