尝试对geom_bar使用position =“fill”时出错。这是一个MWE:
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调用工作正常,产生一个条形图,其中每个条形由3个颜色组成,对应于0,1和2级。图例显示最终级别(3),但由于权重始终为0,它没有出现在情节中。
但是,第二个ggplot调用会返回错误。我原本以为它会像以前一样返回相同的情节,但只是将每个柱子的高度调高到1.任何想法为什么会发生这种情况,如果有解决办法?
答案 0 :(得分:4)
似乎期望weight
为>使用position=fill
时为0。如果你这样做:
ggplot(temp[temp$weight > 0,],
aes(x=X, weight=weight, fill=factor(fill))) +
geom_bar(bin_width=1, position="fill")
然后它有效。