在 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')

和结果

编辑:
我忘了复制库的代码。

最佳答案

我在 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)

10-06 13:50