Butterfly Chart in Tableau

Il Butterfly Chart è molto utile per rappresentare le differenze nella distribuzione di due variabili. Questo tipo di grafico è infatti adatto a visualizzare il confronto tra dati bidimensionali in cui ci sono due categorie. Il grafico è quindi ottimo da utilizzare per comparare due misure associate, plottandole una contro l’altra. 

Il Butterfly Chart si utilizza spesso per l’analisi delle prestazioni, comparando magari l’andamento della propria azienda con l’andamento medio di un’azienda rappresentativa del mercato di riferimento, oppure per l’analisi delle performance ottenute da due gruppi distinti. 

Utilizziamo il dataset Sample – Superstore ma ad esso andiamo ad aggiungere altre colonne per tenere in considerazione anche l’età e il genere dei clienti. 

Con Alteryx si è costruita una colonna in più che etichetta ciascun ID con “Male” o “Female”. L’assegnazione delle etichette è stata fatta in modo randomico con la funzione RAND(): ai valori maggiori o uguali a 0.5 è stata poi assegnata l’etichetta “Female” mentre a quelli minori di 0.5 è stata assegnata ‘etichetta “Male”. 

Allo stesso modo, con la formula RAND()*98+1 si è assegnato un valore fittizio compreso tra 1 e 99 che indica l’età del cliente.

In questo modo, il dataset contiene i dati dei clienti suddivisi per genere ed età.Costruiamo un Butterfly Chart che ci indichi quale genere e classe d’età abbia fatto più ordini al nostro superstore. Il flusso di lavoro in Alteryx dovrà assomigliare a questo: 

Apriamo ora Tableau e vediamo i vari step per costruire il Butterfly Chart.

Per prima cosa allora andiamo a creare in Tableau due campi calcolati che ci restituiscano le età dei clienti distinguendoli per genere. Scriviamo un condizione If/Then con cui andare a distinguere il genere femminile.

Ripetiamo la funzione anche per il genere maschile, creando un nuovo campo calcolato.

Abbiano quindi una variabile associato ai clienti e un’altra variabile associata alle clienti. Trasciniamo entrambe queste variabili all’interno di Columns.

Dobbiamo ora creare un campo calcolato che contenga le classi d’età dei nostri clienti con un intervallo di 5 anni per ogni classe. Per farlo, clicchiamo con il destro su Età, selezioniamo Create e quindi Bins: imponiamo 5 come Size of Bins e rinominiamo il nuovo campo come Age Range. 

In alternativa, qualora avessimo bisogno di costruire intervalli diversi per le nostre classi di età, possiamo combinare la funzione Floor() per arrotondare i decimali al numero intero che li precede. In questo modo, possiamo costruire classi con intervalli differenti: nel nostro caso, la prima classe andrà da 1 a 9 mentre le altre seguiranno intervalli di 5 anni. 

Dopodichè, creiamo un campo calcolato chiamato Zero Axis: inserisco semplicemente uno 0 al suo interno e premo Apply: questo campo ci servirà per rappresentare le distribuzioni una contro l’altra. 

Trasciniamo il campo Zero Axis in mezzo alle due Measures inserite in Columns, mentre Age Range lo dispongo in Rows:

Selezionando il Mark di Zero Axis inseriamo Age Range in Text. Rimuoviamo Automatic e inseriamo Text come formato per la rappresentazione. Passiamo quindi a togliere la spunta a Show Header per le classi di età rappresentate nel grafico di sinistra, per avere le classi ben visibili al centro. 

Per iniziare a dare forma al nostro Butterfly Chart dobbiamo ora lavorare sui due assi. Clicchiamo con il destro sull’asse del grafico di sinistra, quindi Edit Axis, e spuntiamo l’opzione Reverse.

Passiamo alla visualizzazione in Entire View e siccome stiamo lavorando con dati divisi per genere procediamo a colorarli differentemente. 

Apriamo di nuovo l’Edit Axis e cambiamo il nome degli assi in Female uno e in Male l’altro; dopodiché ci spostiamo sulla Tab Tick Marks di Edit Axis per rimuovere l’unità di misura, cliccando su None in entrambi i pannelli di comando.

Ripetiamo la stessa azione anche per l’asse di Zero Axis, cancellando in questo caso anche il nome dell’etichetta.

Diamo un nome al nostro grafico: sul foglio di lavoro inseriamo il titolo “Distribution of clients by age range”. 

Clicchiamo ora con il destro su Zero Axis in Columns e selezioniamo Dual Axis: assicuriamoci prima che questo campo e le altre due measures in colonna condividano lo stesso Data Type, altrimenti non saremo poi in grado di sincronizzare gli assi.
Ripristiniamo la visualizzazione in barre in caso Tableau avesse modificato il nostro bar chart. Alla fine del procedimento avremo le nostre barre plottate l’una contro l’altra, le quali mostrano la distribuzione dei clienti per genere. 

Le etichette delle classi sono ora fuori centratura: per metterle al centro della visualizzazione, facciamo click con il pulsante destro del mouse dell’asse di Zero Axis, relativo alle etichette, e clicchiamo su Synchronise axis. 

Per rimuovere lo spazio bianco che intercorre ora tra le due bar chart apriamo l’editor dell’asse di Zero Axis: clicchiamo su Fixed nel gruppo comandi Range e imponiamo un Fixed start uguale a 0, mentre la Fixed end la lasciamo come Automatic. 

Clicchiamo su Apply e verifichiamo il risultato.

Come si nota, solo metà etichetta è leggibile, mentre l’altra metà è nascosta. Per rendere portare le etichette in primo piano facciamo una copia del campo Zero Axis: tenendo premuto Ctrl trasciniamo il campo Zero Axis alla destra della Measure Male Client Age, duplicandolo. Possiamo ricreare ora un altro Dual Axis e ripetere le operazioni compiute in precedenza: Syncronise Axis e Fixed Range nell’editor dell’asse. Scegliamo poi dei colori che rendano la nostra visualizzazione facilmente intellegibile. 

Trasciniamo il campo Age Range in Text nel Mark del nuovo Zero Axis e vedremo le nostre etichette apparire come complete. Per aggiustare l’ordinamento delle nostre classi d’età, nel caso ce ne fosse bisogno, clicchiamo con il destro su Age Range, quindi premiamo Sort e scegliamo la tipologia di ordinamento che vogliamo, ascendente o discendente, imponendo anche il campo per il quale effettuare questo ordinamento. Il grafico assomiglierà molto a questo risultato:

Ecco che il nostro Butterfly Chart ha ormai preso forma: coloriamo le due distribuzioni in modo da rendere immediatamente chiaro di cosa si stia parlando e formattiamo il grafico rimuovendo gli assi che non vogliamo vedere visualizzati. Per non perdere il riferimento al dato numerico, possiamo inserire il numero di Sales nella tooltip in modo da poter vedere anche il valore assoluto di vendite per ciascuna classe di età di entrambi i generi. 

articoli correlati

Come costruire una Waffle Chart in Tableau

La waffle chart è un’ottima soluzione per rappresentare percentuali di un totale.  In questo articolo vengono presentati gli step per creare una “Waffle Chart” partendo

Lollipop Chart e varianti in Tableau

Una delle sfide principali da affrontare quando ci si approccia al mondo dell’analisi dati è la necessità di veicolare in maniera rapida ed efficace le

Tableau integrato da Mapbox

Tableau integrato da Mapbox La mappa è una delle visualizzazioni più utilizzate in Tableau per dare un contesto significativo ai dati. Questo ha lo  scopo