4

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

如何保留因子变量的原始顺序?当我的 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')

和结果

顺序错误

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

4

1 回答 1

3

我在 github 上得到了答案(真的很快,我印象深刻 :))。Brian Diggs 提议用它scale_x_discrete(drop = FALSE)来解决我的问题。这是我的 github 报告和解决方案的链接。现在,结果如我所愿。

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)

在此处输入图像描述

于 2013-03-25T22:27:45.860 回答