[Tutoriel] : Découvrez le Radial Heat Map Chart Layering sur Tableau
Vous êtes un utilisateur Tableau et vous vous demandez sûrement comment utiliser le Radial Heat Map Chart Layering avec la solution Tableau ? Suivez ce tutoriel pas à pas pour maîtriser les layers !
Qu’est-ce que les Layers dans Tableau ?
Après avoir créé un Radial Heat Chart, ici l’objectif de cet article est d’afficher les étiquettes, pour cela nous devons utiliser les « couches » (layers) de Tableau. En effet lorsque nous utilisons des polygones nous ne pouvons pas afficher les étiquettes.
Les superpositions sont utiles afin de pousser les éléments en avant ou en arrière les marques de visualisation.
Ici, la première couche permet de créer le graphique, et la deuxième couche à déposer les étiquettes des différents vaccins.
Nous devons utiliser l’« Axe double », sur la ligne, la première pilule verte (Y) correspond à la première couche et la seconde pilule (Y) à la deuxième couche.
Comment créer des Layers Tableau ?
Pour cela nous devons dupliquer les données d’entrée.
Un produit cartésien sera réalisé entre votre jeu de données « BD_Vaccines » et un second jeu de données créé sur excel :
- Type A représente la première couche, pour réaliser le graphique
- Type B représente la deuxième couche afin de déposer les étiquettes des vaccins
- Type C représente la dernière couche afin de déposer les étiquettes des virus (les différents niveaux des cercles)
Sur Tableau, dans « Source de données », copiez collez simplement « Ctrl C + Ctrl V » (Type A B C):
Dans « Créer un calcul de jointure », tapez « 1 » sur les données initiales et de même sur le second jeu de données.
1/ Déposer le champ « Type » sur détails.
Modifier les champs suivants :
- Rayon :
0.5 + (Index()/(size()+1) / 2)
- Rayon + 1 :
0.5 + ((Index()+1)/(SIZE()+1)/2)
Cela va permettre d’agrandir le cercle central
Créer les champs calculés suivants :
- Rayon Txt :
size()*1.1/SIZE() et calcul de table sur « Virus »
- Angle Txt :
PI()/SIZE() avec un calcul de table par défaut sur le « Vaccin »
Transformer « X » et « Y » :
- Y :
if attr([Type]) = « A » THEN [Rayon (point)]*sin([Angle (point)]) END
- X :
if attr([Type]) = « A » THEN [Rayon (point)]*cos([Angle (point)])
ELSEIF ATTR([Type]) = »B » then
[Rayon Txt]*COS([Angle]+[Angle Txt]) END
- Y bis :
IF ATTR([Type]) = »B » then [Rayon Txt]*SIN([Angle]+[Angle Txt]) END
2/ Tableau :
Modifier les calculs imbriqués de tables « X » et « Y », clic droit sur la pilule verte « X »
Sélectionner le champ « Angle Txt », sur Dimensions spécifiques, cocher « Vaccin »
Faites de même sur la pilule « Y », le champ « Rayon + 1 » cocher « Virus ».
Sélectionner « Angle + 1 » cocher sur « Vaccin ».
Nous allons utiliser un champ « Y bis » qui correspond à la deuxième couche :
Déposer le champ « Y bis » dans Lignes à côté de la pilule verte « Y » :
Dans la deuxième repère « Y bis », supprimer « AGG (Color) » et « Point », changer le type représentation en Texte et déposer le « Vaccin » en Texte.
Clic droit sur la pilule « Y bis », sélectionner Axe double.
Et synchroniser les deux axes, Clic droit sur l’un des deux axes, sélectionner sur Synchroniser l’axe.
Pour aller plus loin
Nous allons ici déposer une troisième couche (Type C) afin de déposer les étiquettes sur les virus :
Pour cela nous allons créer un espace vide en haut du Radial Heat Chart
1/ Créer les champs suivants :
- Angle unitaire :
2*PI()/(size()+1) et calcul de table sur « Vaccin »
- Angle Type C :
([Angle Unitaire])*(INDEX())+PI()/2 et calcul de table sur « Vaccin »
- Angle Type C + 1 :
[Angle Type C] + [Angle Unitaire]
- Angle Type C (Point) :
if ATTR([Point])<=90 then
[Angle Type C]+ATTR([Point])/90*([Angle Type C + 1]-[Angle Type C])
ELSEIF ATTR([Point])<=181 then
[Angle Type C + 1] -(ATTR([Point])-91)/90*([Angle Type C + 1]-[Angle Type C])
ELSE
[Angle Type C]
END
- 1st Virus:
First()=0 et calcul de table sur « Virus »
- Last Vaccin :
Last()=0 et calcul de table sur « Vaccin »
- X Type C:
IF ATTR([Type])= « A » THEN
[Rayon (point)]*cos([Angle Type C (point)])
ELSEIF ATTR([Type])=’B’ THEN
[Rayon Txt]*COS([Angle Type C]+[Angle Txt])
ELSE
0.5*COS(PI()/2+[Angle Unitaire])/2
END
- Y Type C:
if attr([Type]) = « A » THEN
[Rayon (point)]*sin([Angle Type C (point)])
ELSEIF ATTR([Type]) = »B » AND [Last Vaccin] then
[Rayon Txt]*SIN([Angle Type C]+[Angle Txt])
ELSEIF ATTR([Type])= »C » AND [1st Virus] then
([Rayon]+ ([Rayon + 1]-[Rayon])/2)*SIN(PI()/2+[Angle Unitaire]/2)
END
- Label:
if attr([Type]) = « B » AND [Last Vaccin] THEN
attr([Vaccin])
ELSEIF attr([Type]) = « C » AND [1st Virus] then
attr([Virus])
END
2/ Sur Tableau Software:
Ouvrez une nouvelle feuille
Changer le type de repère sur Polygones
Toujours dans le repère, déposer « Vaccin », « Virus » et « Type » dans Détails et « Point » dans Chemin :
Déposer « X Type C » dans Colonnes et « Y Type C » dans Lignes, et « Color » dans Couleur.
Vérifier les calculs imbriqués sur X Type C et Y Type C: (clic droit sur X Type C ou Y Type C, ensuite sur modifier calcul de table)
Cocher pour les champs suivants « Rayon », « Rayon + 1 » et « Rayon Txt » sur la dimension spécifique « Virus »
Cocher pour les champs suivants « Angle Unitaire », « Angle Type C » et « Angle Txt » sur la dimension spécifique « Vaccin »
« 1st virus » et « Last vaccin » sur Table (Horizontale)
Dans couleur ajouter une bordure.
Dupliquer la pilule « Y Type C » :
Dans la deuxième repère « Y bis », supprimer « AGG (Color) » et « Point », changer le type représentation en Texte et déposer le « Label » en Texte.
Dans le deuxième repère, « Y Type C (2) », clic droit sur « Label » et vérifier les calculs imbriqués :
« 1st virus » et « Last vaccin » sur Table (Horizontale)
Clic droit sur la pilule « Y Type C », sélectionner Axe double.
Et synchroniser les deux axes, Clic droit sur l’un des deux axes, sélectionner sur Synchroniser l’axe.
Tada, voici le résultat final :
Voilà, je vous ai donné toutes les méthodes que je connais actuellement pour un Radial Heat Map Chart Layering sur Tableau.
N’hésitez pas à étoffer l’article en commentaire !
Retrouvez d’autres tutoriels sur Tableau ici !
Suivez-nous sur les réseaux sociaux : LInkedIn & Twitter !