Sankey Chart in Tableau

Come creare un Sankey Chart in Tableau

Cos’è il Sankey Chart?

Il Sankey Chart è una visualizzazione utilizzata per rappresentare dei flussi. In particolare, è utile quando si vogliono mostrare dei cambiamenti da una condizione iniziale ad almeno un’altra condizione. Per esempio, si pensi ad un trasferimento di materiali da un punto ad un altro. Ma cosa bisogna ricordare quando si legge un Sankey Chart? Occorre tenere a mente che più è grande la linea che collega le due condizioni, maggiore sarà la sua quantità nel flusso.

Il Sankey Chart deve il suo nome al capitano Matthew Henry Phineas Riall Sankey. Infatti, egli fu il primo che utilizzò questo tipo di grafico per mostrare l’efficienza energetica di un motore a vapore (Sankey Chart).

Come costruire il Sankey Chart in Tableau?

Per la creazione del Sankey mi sono ispirata ai blog di Alfred Chan e Brandon Fitz-Gerald. Prima di iniziare a realizzare il grafico bisogna scegliere un dataset in cui è presente almeno una misura e due dimensioni ad esse correlate.

In questo esempio ho utilizzato il dataset Macros of Popular High Protein Foods (lo potete scaricare a questo link: Dataset). Questo dataset contiene i macronutrienti di alcuni tra i cibi più popolari, con un elevato contenuto di proteine. Nel dataset sono presenti 4 dimensioni e 4 misure. 

Descrizione del dataset Macros of Popular High Protein Foods
Dataset Macros of Popular High Protein Foods

Per costruire il Sankey Chart ho utilizzato la misura proteins_100G. In questo modo posso mostrare come cambia l’apporto proteico dato da alcune categorie di cibi in diversi tipi di dieta.

1. Creare una copia dei dati

  • Nel pannello Data Source trascinare la tabella che si vuole usare (macros in questo caso) sopra a quella già presente in modo da creare un’unione.
Unione delle due tabelle
Tabelle unite
Icona delle tabelle unite

Grazie all’unione, Tableau genera automaticamente un nuovo campo chiamato Table Name. Questo campo ci servirà per i calcoli successivi.

2. Creare i campi calcolati (prima fase per la creazione del Sankey Chart)

  • Creare il campo calcolato To Pad
Campo calcolato

Questo campo calcolato assegna 1 alla tabella originale e 49 alla tabella copiata grazie all’unione precedente. Se non si ricorda il nome della tabella di dati, si può semplicemente trascinare la dimensione “Table Name” sulle righe. Di solito la tabella originata dall’unione presenta un suffisso 1 nel nome.

Il nome della tabella originale in questo caso è “Macros”
  • Creare i bin per il campo calcolato To Pad

Con il campo calcolato To Pad abbiamo ottenuto due valori estremi, 1 e 49, ma non è presente niente tra questi due valori. Per simulare i valori da 2 a 48 basta creare dei bins partendo dalla misura To Pad. In questo caso ho chiamato il campo Padding. Assegnare 1 alla dimensione dei bins e fare click su OK.

Come creare bins
Creare i bins dalla misura ToPad
Impostare dimensione dei bins
Impostare 1 come dimensione dei bins
  • Creare il campo calcolato Padding Index
Campo calcolato

Questo campo calcolato serve a distribuire i punti del Sankey Chart lungo tutta la vista. Ad esempio, i due punti estremi del Sankey avranno rispettivamente un valore di -6 e 6. Per controllare, basta sostituire 1 e 49 nel campo calcolato Padding Index, ovvero il primo e ultimo valore del campo To Pad.

  • Aggiungere Padding Index e Padding alla vista

Trascinare il campo Padding Index sulle colonne e Padding in detail nel marks panel. Cambiare il mark type in circle.

Così facendo sarà presente un singolo mark nella vista. Per vederli tutti e 49 bisogna cliccare con il tasto destro su Padding Index e selezionare Compute Using e Padding

Come selezionare Compute Using

Adesso dovrebbero apparire tutti i marks, da -6 a 6.

Ultimi campi calcolati per il Sankey Chart

  • Creare due campi calcolati uguali

Creare un campo calcolato, Rank 1, duplicarlo e chiamare il secondo campo Rank 2. I due campi sono identici.

Campo calcolato
Campo calcolato

Questi due campi serviranno per dire a Tableau qual è il punto di inizio e di fine del Sankey Chart.

  • Creare il campo calcolato per la sigmoide

Per fare in modo che il Sankey Chart abbia la caratteristica forma a “S”, bisogna creare un altro campo calcolato come nell’immagine. 

Campo calcolato
  • Costruire la curva

Creare un altro campo calcolato chiamato “Curve” che servirà a costruire la curva del Sankey Chart. Scrivere nel campo calcolato quanto segue:

[cc_Rank 1]+(([cc_Rank 2]-[cc_Rank 1])*[cc_Sigmoid])

Questo calcolo dice a Tableau di partire dal punto iniziale (Rank 1) e di disegnare una curva sigmoidale fino al punto finale (Rank 2 – Rank 1).

3. Costruire il Sankey Chart

  • Aggiungere il campo calcolato “Curve” sulle righe. Appariranno solo due marks perché non si sta dicendo a Tableau in che modo disegnare la curva.
  • Aggiungere le 2 dimensioni che si vogliono utilizzare nel campo detail del marks panel. In questo caso, ho deciso di utilizzare i campi Diet Type e Category Name del dataset Macros of Popular High Protein Foods.
  • Cliccare con il tasto destro sul campo Curve sulle righe, selezionare Edit Table Calculation. Dopodiché selezionare Compute Using Specific Dimensions e seguire le indicazioni delle immagini sotto per configurare le 2 nested calculations. Fare attenzione all’ordine dei diversi campi selezionati.
Table Calculation per il campo Rank 1, punto di inizio del Sankey
Impostazioni per Rank 1
Table Calculation per il campo Rank 2, punto finale del Sankey
Impostazioni per Rank 2
  • A questo punto apparirà un grafico del genere:
  • Cambiare il mark type in Line e aggiungere il campo Padding in path.
Il Sankey Chart inizia a prendere forma
  • Creare un ultimo campo calcolato per dare la giusta dimensione alle linee in base al contenuto di proteine.
Campo calcolato
  • Aggiungere questo campo calcolato in Size nel marks panel e selezionare Compute Using  e Padding. Si dovrebbe ottenere un grafico come quello rappresentato sotto.
Il Sankey chart inizia a prendere forma
Sankey quasi ultimato
  • Aggiungere il campo Diet Type su Color e il Sankey Chart è quasi pronto!
Sankey con colori
  • Ordinare Diet Type in ordine decrescente e Category Name in ordine crescente secondo il campo Proteins 100G.

4. Creare due Stacked Bar Chart

  • In due fogli separati creare due Stacked Bar chart con il campo Protein 100G sulle righe utilizzando il calcolo veloce Percent of Total.
  • Nel primo grafico aggiungere Diet Type sul colore. Ordinare Diet Type in ordine crescente secondo il campo Protein 100G.
  • Nel secondo grafico aggiungere il campo Protein 100G sul colore e Category Name in detail. Ordinare Category Name in ordine decrescente secondo il campo Protein 100G.
Stacked bar chart
Stacked bar chart

5. Mettere tutto assieme in una dashboard

  • Prima di aggiungere le tre viste in una nuova dashboard, bisogna aggiustare gli assi dei grafici selezionando Edit Axis per le righe e Fixed. Si può selezionare un intervallo da 0 a 1 per tutti e tre i grafici.
Come ridimensionare l'asse verticale del Sankey Chart
  • Per il grafico del Sankey Chart selezionare Edit Axis per le colonne e Fixed, prendendo come intervallo di valori -5 e 5.
  • Per le due Stacked Bar Chart ricordarsi di aumentare al massimo la dimensione delle barre. Questo servirà nella dashboard per evitare di avere bordi bianchi ai lati delle barre.
Come impostare dimensione delle barre

Ultimi step per la dashboard

  • Creare una dashboard aggiungendo i tre grafici ottenuti.
  • Rimuovere titoli e assi.
  • Rimuovere le linee dalla formattazione del Sankey Chart.
  • Aumentare le dimensioni delle curve.
  • Aggiungere le etichette per le barre.

Infine, come ultimo passaggio si può aggiungere un’azione highligth:

Impostazione del filtro Highligth per il Sankey Chart

Adesso non devi fare altro che provare a creare una tua dashboard!

Spero che questo blog ti abbia aiutato a capire come creare un Sankey Chart in Tableau! 

Se vuoi puoi vedere la mia dashboard su Tableau Public 🙂

Esempio di Sankey Chart

articoli correlati

Nuove funzionalità PowerBI (Dec 2023)

In questo articolo vedremo alcune nuove impostazioni di formattazione per i nostri grafici a colonne e a barre, nonché per le etichette dei dati. Credo

New Button Slicer in Power BI

La nuova funzionalità aggiunta in Power BI rende il pannello dei filtri molto più dinamico e personalizzabile. Con il nuovo oggetto grafico si ha infatti

Selezioni Data Academy 2024

La prossima Data Academy by The Information Lab Italia inizierà a Febbraio 2024! Le selezioni stanno per iniziare!