2016-04-06 69 views
1

我使用this link中的第一個答案來創建堆積折線圖,但在結果圖中看到一些異常。兩個詞在雜誌上的不同版本的分佈情況如下:無法在R中獲得正確堆積的折線圖

enter image description here

我不明白爲什麼白色的空間出現在最低堆下面。例如,如果我只看到「政治」的分佈,當它變爲0時(如它應該的那樣),該行觸及x軸。在堆疊條形圖的情況下,它只是簡單地錯誤地浮在x軸上。

enter image description here

編輯:head(df)給出以下輸出:

 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 

的代碼行繪製堆積曲線(用於字)是

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

提前感謝!

+0

添加數據和代碼。 – wrahool

回答

4

我相信這是ggplot的行爲,當stat = "identity",這是geom_area的默認值。我不記得它以前用geom_area做什麼,但是現在數據框中行的順序會影響事物的堆疊方式(當時爲stat = "identity"!)。

嘗試以下操作:

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

如果word變量的排序是數據幀中的不一致,我想你會看到不一致的堆疊。