2009-11-11 228 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

我不知道什么的第一个例子不工作,虽然?