In R

2016-04-06 10 views
1

kann ich kein korrekt gestapeltes Liniendiagramm erhalten. Ich verwende die erste Antwort in this link, um eine gestapelte Liniendiagramm zu erstellen, aber ich sehe einige Anomalien in der resultierenden Grafik. Die Verteilung der zwei Worte über verschiedene Ausgaben einer Zeitschrift ist wie folgt:In R

enter image description here

Ich verstehe nicht, warum der weiße Raum unter dem niedrigsten Stapel erscheint. Wenn ich zum Beispiel nur die Verteilung von "politisch" visualisiere, berührt die Linie die X-Achse, wenn sie 0 wird (wie es sein sollte). Im Falle des gestapelten Balkendiagramms schwebt es einfach und schwebt falsch über der x-Achse.

enter image description here

Edit: head(df) gibt die folgende Ausgabe:

 year_ed  word total_freq editions 
8 2010_1 political  170  1 
12 2010_1  media  165  1 
26 2010_2  media   23  2 
29 2010_2 political   0  2 
37 2010_3  media  137  3 
39 2010_3 political  131  3 
47 2010_4  media   75  4 

Die Codezeile des gestapelten Graphen plotten (für beide Wörter) ist

ggplot(df, aes(x = editions, y = total_freq, fill = word)) + geom_area(position = 'stack') 

Vielen Dank im Voraus!

+0

hinzugefügt Daten und Code. – wrahool

Antwort

4

Ich glaube, dass dies ein Ergebnis von ggplot ‚Verhalten ist, wenn stat = "identity", die für geom_area ist die Standardeinstellung. Ich kann mich nicht erinnern, was es früher mit geom_area gemacht hat, aber jetzt beeinflusst die Reihenfolge der Zeilen im Datenrahmen, wie die Dinge gestapelt sind (wenn stat = "identity"!).

Versuchen Sie Folgendes:

df <- read.table(text = "  year_ed  word total_freq editions 
8 2010_1 political  170  1 
12 2010_1  media  165  1 
26 2010_2  media   23  2 
29 2010_2 political   0  2 
37 2010_3  media  137  3 
39 2010_3 political  131  3 
47 2010_4  media   75  4",header = TRUE,sep = "") 

library(dplyr) 

df <- arrange(df,editions,word) 
ggplot(df, aes(x = editions, y = total_freq, fill = word)) + 
    geom_area(position = 'stack') 

enter image description here

df <- arrange(df,editions,desc(word)) 
ggplot(df, aes(x = editions, y = total_freq, fill = word)) + 
    geom_area(position = 'stack') 

enter image description here

Wenn die Reihenfolge der word Variable innerhalb des Datenrahmens inkonsistent ist, ich glaube, Sie inkonsistent Stapel sehen werden .