在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')
和结果
修改 我忘了复制图书馆的代码。
答案 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)