Come creare un Network Chart utilizzando Tableau Desktop

I Network Chart sono un metodo di rappresentazione in grado di visualizzare facilmente relazioni tra dati. Utilizzano nodi collegati tra loro tramite caratteristiche comuni, come elementi grafici, permettendo così un’immediata individuazione delle diverse relazioni e clusters.

Al fine di creare visualizzazioni network in Tableau, esistono due alternative: la prima è tramite extension a pagamento, mentre la seconda utilizza una soluzione completamente gratuita che però necessita di step manuali al fine di preparare il dato a poter essere visualizzato su Tableau. In quest’ultimo caso, consigliamo questo tipo di visualizzazione solo per fonti dati che non hanno l’esigenza di dover essere refreshate con frequenza.

Nel nostro esempio utilizzeremo Tableau, Excel e Gephi, ma il ragionamento è estendibile a qualsiasi programma di vostra preferenza.

Preparazione del dataset

Per realizzare un grafico di questo tipo, è necessario avere un dataset adatto, capace di mostrare una rete di relazioni. Nel nostro esempio utilizzeremo The Game of Thrones Deaths, in quanto si presenta come un buon punto di partenza: contiene informazioni come nome e casata del killer, nome della vittima, episodio e luogo della morte. E poi, a chi non piace Game of Thrones?

Tableau necessita di conoscere le coordinate spaziali dei nodi e come collegarli. Nel nostro esempio, ogni nodo rappresenta un killer o una vittima.

Per generare queste coordinate, dobbiamo fornire a Gephi due file .csv (maggiori informazioni qui):

  • Nodes.csv – fornisce tutti i possibili nodi di una rete. Questo file deve contenere almeno le seguenti colonne: ‘ID’ e ‘Label’. ‘ID’ è un numero che identifica i nostri killer/vittime, mentre ‘Label’ rappresenta l’etichetta di ciascun nodo;
  • Edges.csv – fornisce informazioni sul collegamento tra i nodi. Questo file deve contenere almeno le seguenti colonne: ‘Source’, ‘Target’ e ‘Type’. Nel nostro caso ‘Source’ è il killer, ‘Target’ è la vittima e ‘Type’ rappresenta il tipo di connessione (nel caso esista una relazione tra source/target, ‘Type’ deve essere valorizzato come ‘Directed’).

 

Ora che conosciamo le informazioni che dobbiamo fornire a Gephi per generare il nostro network chart, è tempo di iniziare a preparare i dati.

Possiamo notare che il campo ‘Name’ (i nostri target) è valorizzato con valori duplicati dovuti a nomi comuni come ‘Tribesman’ e ‘Lannister soldier’. Prima di procedere, la prima operazione da fare è decidere se considerare questi valori come distinti, creando una naming convention ad hoc per ciascuno (in questo modo visualizzeremo ogni singola uccisione avvenuta durante la serie), oppure rimuoverli (visualizzando un singolo nodo per rappresentare, ad esempio, il valore ‘Tribesman’). In questo esempio, abbiamo deciso di adottare il primo approccio.

Creazione dei nodi

Creiamo un nuovo file excel e andiamo a creare i nostri due campi ‘ID’ e ‘Label’. Copiamo successivamente i valori della colonna ‘Killer’ sotto il campo ‘Label’ e rimuoviamone i duplicati. Procediamo allo stesso modo per la colonna ‘Name’ e andiamo a valorizzare il campo ‘ID’ con una sequenza numerica crescente. In questo modo, ogni killer/vittima avrà il suo ID distinto. Salviamo infine il file come Nodes.csv (formato .csv!).

 

Creazione degli edges

A questo punto avremo una lista univoca di ID. Utilizzando le funzioni INDICE/CONFRONTA sarà possibile inserire questi valori all’interno del nostro dataset, sia per il killer che per la vittima, all’interno di due nuovi campi che andremo a chiamare ‘Source’ e ‘Target’.

 

Ora che abbiamo mappato i nostri elementi con gli ID creati nello step precedente, andiamo a creare i campi ‘Source’, ‘Target’ e ‘Type’ in un nuovo file excel. Copiamo e incolliamo i campi appena aggiunti alla source di partenza all’interno di questo file. Salviamo infine il file come Edges.csv (il formato .csv è necessario).

 

Come anticipato, essendo presente una relazione tra killer/vittima, il campo ‘Type’ deve essere valorizzato a stringa fissa ‘Directed’. Inoltre, se si vuole dare un maggior peso ad una relazione in particolare, è possibile creare una colonna numerica aggiuntiva chiamata ‘Weight’.

 

Creazione delle coordinate

Apriamo Gephi, clicchiamo su File -> Open e selezioniamo il file Nodes.csv. Gephi riconosce automaticamente che è una tabella di nodi. Clicchiamo su ‘next’, ‘finish’ e selezioniamo ‘Directed’ dal menù del ‘graph type’.

Procediamo allo stesso modo per il file Edges.csv ma dopo aver selezionato ‘Directed’ clicchiamo su ‘Append to existing workspace’. Il risultato finale sarà simile al seguente:

È ora di formattare il layout della nostra rete! A tale scopo sfruttiamo il menù ‘Layout’, presente nella barra laterale sinistra. Divertitevi a provare i vari algoritmi, è possibile anche spostare manualmente ciascun punto della rete. Nel nostro caso, il risultato finale è stato il seguente:

 

Siamo quasi pronti per caricare i dati in Tableau! Prima però salviamo le coordinate ‘x’ ed ‘y’ della rete. Andiamo su File -> Export -> Graph File e salviamo come estensione .gexf (essenzialmente un formato XML).

Dobbiamo trasferire questi dati all’interno della nostra fonte. Apriamo quindi il file appena creato tramite Excel (potrebbero comparire dei messaggi di warning, non preoccupiamocene e clicchiamo pure su ‘Ok’). Apriamo ‘Come tabella XML’ e usiamo di nuovo le funzioni INDICE/CONFRONTA per portare le coordinate ‘x’ ed ‘y’ dei killer all’interno della fonte dati.

Creiamo ora una copia dei dati (per esempio all’interno di un altro foglio di lavoro) e ripetiamo gli stessi step per recuperare le coordinate delle vittime. Appendiamo queste due tabelle per ottenerne un’unica contenente le coordinate dei killer e delle vittime.

Siamo finalmente pronti a caricare i dati in Tableau!

Trasciniamo i campi ‘X’ ed ‘Y’ in riga e colonna e convertiamoli in dimensioni. Duplichiamo il campo ‘Y’ e creiamo un dual axis (ricordatevi sempre di sincronizzare gli assi). Ciò che otteniamo è un grafico simile (la visualizzazione potrebbe differire se su Gephi avete selezionato un algoritmo diverso):

 

Ora è necessario specificare a Tableau come collegare i campi ‘Source’ e ‘Target’. Cliccando sul Mark ‘Y’ è possibile modificare il tipo di indicatore in ‘Line’. Trasciniamo quindi i campi ‘Source’ e ‘Target’ in ‘Detail’ dopo averli convertiti in dimensioni.

 

Ecco il risultato finale.

Giocate con la formattazione e il design per migliorare la visualizzazione… ma soprattutto divertitevi!

 

Qui potete trovare una bellissima dashboard costruita utilizzando lo stesso dataset. Teniamo presente che le coordinate ‘X’ ed ‘Y’ sono statiche, quindi un’operazione di filtraggio (per esempio per stagione) non riposiziona i punti della rete! Meglio utilizzare un’azione di highlighting.

Se ti sei perso i nostri articoli precedenti, puoi recuperarli sul nostro blog e continuare a seguirci sui nostri canali social LinkedIn, Facebook e Twitter!