两个geom_bar()和因子变量的错误顺序

时间:2013-03-25 21:03:24

标签: r ggplot2 plyr

在ggplot2中绘制条形图时,我对因子变量的正确顺序有问题。我使用两个带有原始数据集子集的geom_bars(变量g有两个级别'A'和'B')。

如何保留因子变量的原始顺序? 当我的var是数字时没有问题,但我们假设x应该是因子。

这是我的代码:

library(plyr)
library(ggplot2)

dane<-data.frame(x=1:10,y=seq(-5,4),g=rep(c('A','B'),each=5))
    dane$x<-as.factor(dane$x)

      ggplot(data=dane,aes(x=x,y=y,fill=g)) + 
        geom_bar(subset=.(g=='A'),stat='identity') +
        geom_bar(subset=.(g=='B'),stat='identity')

和结果

WrongOrder

修改 我忘了复制图书馆的代码。

1 个答案:

答案 0 :(得分:3)

我在github上得到了答案(真的很快,我印象深刻:))。 Brian Diggs建议使用scale_x_discrete(drop = FALSE)来解决我的问题。 Here's the link to my github report and solution。现在,结果就像我想要的那样。

ggplot(data=dane,aes(x=x,y=y,fill=g)) + 
    geom_bar(subset=.(g=='A'),stat='identity') +
    geom_bar(subset=.(g=='B'),stat='identity') +
    scale_x_discrete(drop=FALSE)

enter image description here