2013-02-19 60 views
3

我在尝试对geom_bar使用position =“fill”时出现错误。这里的一个MWE:ggplot2 geom_bar在位置=“填充”时在某些情况下给出错误

temp = data.frame(X=rep(1:10,10), weight=runif(100), fill=rbinom(100,size=3,p=.5)) 
temp$weight[temp$fill==3] = 0 
ggplot(temp, aes(x=X, weight=weight, fill=as.factor(fill))) + 
    geom_bar(bin_width=1) 
ggplot(temp, aes(x=X, weight=weight, fill=as.factor(fill))) + 
    geom_bar(bin_width=1,position="fill") 

第一ggplot呼叫工作正常,产生一个条形图,其中每个杆由对应于水平0,1 3种颜色,和2图例显示最终电平(3),但是因为重量总是0,所以它不会出现在图上。

但是,第二个ggplot调用返回一个错误。我曾预料它会像以前一样返回同样的情节,但只是将每个酒吧的高度调整到1.任何想法为什么会发生这种情况,以及是否有解决方法?

回答

3

似乎预计当您使用position=fillweight> 0。如果你这样做:

ggplot(temp[temp$weight > 0,], 
    aes(x=X, weight=weight, fill=factor(fill))) + 
    geom_bar(bin_width=1, position="fill")  

然后它的工作。

+0

太棒了,谢谢!这正是我所期待的。 – 2013-02-19 14:45:55

相关问题