Dieses Diagramm zeigt eine Zwei-Wege- Kontingenztabelle an, deren Daten ungefähr folgende sind:
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
Es gibt unzählige Möglichkeiten, diese Handlung zu konstruieren. Sie können beispielsweise die Positionen jedes rechteckigen Farbfelds berechnen und jedes Feld separat plattieren. Im Allgemeinen ist es jedoch hilfreich, eine kurze Beschreibung zu finden, wie ein Diagramm Daten darstellt.
Als Ausgangspunkt können wir dieses als eine Variation eines gestapelten Balkendiagramms betrachten.
Diese Darstellung bedarf kaum einer Beschreibung: Durch Vertrautheit wissen wir, dass jede Reihe von Rechtecken jeder Reihe der Kontingenztabelle entspricht; dass die Längen der Rechtecke direkt proportional zu ihrer Anzahl sind; dass sie sich nicht überlappen; und dass die Farben den Spalten der Tabelle entsprechen.
Wenn wir diese Tabelle in einen "Datenrahmen" oder eine "Datentabelle" mit einer Zeile pro Zählung mit Feldern konvertieren , die den Zeilennamen, den Spaltennamen und die Anzahl angeben, bedeutet das Plotten normalerweise, eine geeignete Funktion aufzurufen und festzulegen, wo sie zu finden ist die Zeilennamen, die Spaltennamen und die Anzahl. Bei Verwendung einer Grammatik-Grafik- Implementierung (dem Paket für ) würde dies ungefähr so aussehenXggplot2
R
ggplot(X, aes(Outcome, Count, fill=Referral)) + geom_col()
Die Details der Grafik, z. B. wie breit eine Reihe von Balken ist und welche Farben verwendet werden sollen, müssen normalerweise explizit festgelegt werden. Wie das gemacht wird, hängt von der Plotumgebung ab (und ist daher von relativ geringem Interesse: Sie müssen es nur nachschlagen).
Diese spezielle Implementierung der Grammatik der Grafiken bietet wenig Flexibilität bei der Positionierung der Balken. Eine Möglichkeit, mit minimalem Aufwand das gewünschte Aussehen zu erzielen, besteht darin, an der Basis jedes Balkens eine unsichtbare Kategorie einzufügen, sodass die Balken zentriert sind. Ein wenig Nachdenken legt nahe, dass die falsche Anzahl, die zum Zentrieren jedes Balkens benötigt wird, der Durchschnitt der Gesamtlänge des Balkens und der des längsten Balkens sein muss. In diesem Beispiel wäre dies eine Anfangsspalte mit den Werten
254478.0 0.0 301115.0 897955.0 993610.5 1019817.0
Hier ist das resultierende gestapelte Balkendiagramm, das die gefälschten Daten in hellgrau zeigt:
Die gewünschte Figur wird erstellt, indem die Grafiken für die gefälschte Spalte unsichtbar gemacht werden:
Die Beschreibung der Grammatik der Grafik des Diagramms muss nicht geändert werden: Wir haben einfach eine andere Kontingenztabelle angegeben, die gemäß derselben Beschreibung gerendert werden soll (und die Standardfarbzuweisung für die gefälschte Spalte überschrieben).
Bemerkungen
Diese Grafiken sind ehrlich: Die horizontale Ausdehnung jedes farbigen Patches ist ohne Verzerrung direkt proportional zu den zugrunde liegenden Daten. Ein Vergleich mit dem Original (in der Frage) zeigt, wie extrem die Verzerrung ist (Tuftes Lügenfaktor ).
Wenn Details am unteren Rand des "Trichters" angezeigt werden sollen, sollten Sie die Anzahl nach Fläche und nicht nach Länge darstellen. Sie können die Längen der Balken proportional zu den Quadratwurzeln der Gesamtlängen und ihre Breite (in vertikaler Richtung) auch proportional zu den Quadratwurzeln machen. Jetzt wäre der Boden des "Trichters" etwa ein Zwanzigstel der längsten Länge und nicht ein Vierhundertstel davon, so dass einige Details sichtbar werden könnten. Leider ggplot2
erlaubt die Implementierung nicht, eine Variable der Balkenbreite zuzuordnen, und daher ist eine aufwändigere Umgehung erforderlich (eine, die tatsächlich jedes Rechteck einzeln beschreibt). Vielleicht gibt es eine Python-Implementierung, die flexibler ist.
Verweise
Edward Tufte, Die visuelle Darstellung quantitativer Informationen . Cheshire Press 1984.
Leland Wilkinson, Die Grammatik der Grafik. Springer 2005.