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