Questo diagramma mostra una tabella di contingenza a due vie i cui dati sono approssimativamente questi:
Branded Unbranded Social Referring Direct RSS
First-time... 177276 472737 88638 265915 472737 59092
Return Visits... 236002 629339 118001 354003 629339 78667
4+ Visits in ... 166514 444037 83257 249771 444037 55505
10+ Visit in ... 28782 76751 14391 43172 76751 9594
At Least One Visit... 6707 17886 3354 10061 17886 2236
Last Touch... 660 1759 330 989 1759 220
Ci sono una miriade di modi per costruire questa trama. Ad esempio, è possibile calcolare le posizioni di ogni patch rettangolare di colore e plat separatamente ogni patch. In generale, tuttavia, aiuta a trovare una descrizione sintetica di come una trama rappresenta i dati.
Come punto di partenza, possiamo vedere questo come una variazione di un grafico a barre in pila.
Questa trama non ha quasi bisogno di una descrizione: attraverso la familiarità sappiamo che ogni riga di rettangoli corrisponde a ciascuna riga della tabella di contingenza; che le lunghezze dei rettangoli sono direttamente proporzionali ai loro conteggi; che non si sovrappongono; e che i colori corrispondono alle colonne della tabella.
Se convertiamo questa tabella in un "frame di dati" o "tabella di dati" con una riga per conteggio con campi che indicano il nome della riga, il nome della colonna e il conteggio, la sua rappresentazione in genere equivale a chiamare una funzione adatta e stabilire dove trovare i nomi delle righe, i nomi delle colonne e i conteggi. Usando un'implementazione Grammatica della Grafica (il pacchetto per ) questo sarebbe simileXggplot2
R
ggplot(X, aes(Outcome, Count, fill=Referral)) + geom_col()
I dettagli del grafico, come la larghezza di una fila di barre e i colori da utilizzare, devono in genere essere definiti esplicitamente. Il modo in cui ciò viene fatto dipende dall'ambiente di stampa (e quindi è di scarso interesse: devi solo cercare).
Questa particolare implementazione della Grammatica della Grafica offre poca flessibilità nel posizionamento delle barre. Un modo per produrre l'aspetto desiderato, con il minimo sforzo, è quello di inserire una categoria invisibile alla base di ogni barra in modo che le barre siano centrate. Un piccolo pensiero suggerisce che il conteggio falso necessario per centrare ogni barra deve essere la media della lunghezza totale della barra e quella della barra più lunga. Per questo esempio questa sarebbe una colonna iniziale con i valori
254478.0 0.0 301115.0 897955.0 993610.5 1019817.0
Ecco il grafico a barre in pila risultante che mostra i dati falsi in grigio chiaro:
La figura desiderata viene creata rendendo invisibile la grafica per la falsa colonna:
La descrizione della grammatica della grafica della trama non ha bisogno di cambiare: abbiamo semplicemente fornito una tabella di contingenza diversa da renderizzare secondo la stessa descrizione (e sovrascrivendo l'assegnazione di colore predefinita per la colonna falsa).
Commenti
Questi elementi grafici sono onesti: l'estensione orizzontale di ogni patch colorata è direttamente proporzionale ai dati sottostanti, senza distorsioni. Confrontandoli con l'originale (nella domanda) si rivela quanto sia estrema la sua distorsione (Tufte's Lie Factor ).
Se si desidera mostrare i dettagli nella parte inferiore dell '"imbuto", considerare la possibilità di rappresentare i conteggi per area anziché per lunghezza. È possibile rendere le lunghezze delle barre proporzionali alle radici quadrate delle lunghezze totali e le loro larghezze (in direzione verticale) anche proporzionali alle radici quadrate. Ora il fondo dell '"imbuto" sarebbe circa un ventesimo della lunghezza più lunga, piuttosto che un quattrocentesimo di esso, consentendo alcuni dettagli da mostrare. Sfortunatamente, l' ggplot2
implementazione non consente di mappare una variabile alla larghezza della barra, quindi è necessaria una soluzione più complessa (una che descriva effettivamente ogni rettangolo individualmente). Forse esiste un'implementazione di Python più flessibile.
Riferimenti
Edward Tufte, The Visual Display of Quantitative Information . Cheshire Press 1984.
Leland Wilkinson, The Grammar of Graphics. Springer 2005.