2009-11-11 229 views
1

我有一個數據框,顯示每年的四個類,以及他們各自在當年的總數。ggplot2:使用geom_area()函數

> head(df) 
     class year share 
1 class1 1975 0.806 
2 class2 1975 0.131 
3 class3 1975 0.018 
4 class4 1975 0.045 
5 class1 1976 0.788 
6 class2 1976 0.151 

當我運行ggplot沒有指定fill,我得到一個統一的灰色框,符合市場預期。因此我嘗試添加fill=class,但它不起作用。

> ggplot(df, aes(x=year, y=share, group=class, fill=class)) + geom_area() + scale_fill_brewer() 

Error in inherits(x, "factor") : object "base_size" not found 
In addition: Warning message: 
In inherits(x, "factor") : restarting interrupted promise evaluation 
> 

什麼我可以做的class因素得到它正確地scale_fill_brewer()工作?顯然,這個想法是根據其類來遮蔽圖的每個區域。

謝謝。

+0

使用上面向我們顯示的數據樣本,我不會收到這樣的錯誤消息,並且所有事情都按預期工作。也許你可以嘗試關閉並重新打開R會話,看看這是否有幫助。 – learnr 2009-11-11 17:21:41

+0

你可以把一個可運行的例子放在一起嗎?我懷疑使用像「class」這樣的保留字作爲列的名稱。也許就是這樣? – 2009-11-11 17:44:14

+0

我實際上改變了列名來消毒數據,所以問題出現在「class」字段名稱前後,但我會創建一個新的data.frame併發佈一個可運行的示例。 – 2009-11-11 17:48:30

回答

0

問題出在我設置的一些主題參數,所以一旦我開始構建一個可運行的示例在這裏重現,它就消失了。謝謝您的幫助。

1

我剛剛遇到了這個問題。它接縫

theme_set(theme_bw(base_size=9)) 

導致錯誤報告。但是

base_size <- 9 
theme_set(theme_bw(base_size=base_size)) 

的作品。

我用Google搜索,發現例如在learnr blog

我不知道什麼的第一個例子不工作,雖然?