过去几周我一直在与ggplot2合作,并且想知道是否有人可以帮助我解决我遇到的这个问题。
当我绘制我的盒子图时,我的盒子互相接触。我希望他们之间有一点空间。有没有办法实现这个目标?我确信有,我只是没有看到它。
答案 0 :(得分:16)
让我们借用Kevin Ushey在question中提供的可重现的例子:
set.seed(123)
dat <- data.frame(
x=rep( c(1, 2, 3, 4), times=25 ),
y=rnorm(100),
gp=rep(1:2, each=50)
)
p <- ggplot(dat, aes(x=factor(x), y=y))
p + geom_boxplot(aes(fill = factor(gp))) #example 1
然后,按照Arun的建议,我测试了(position = position_dodge(.))
但使用了geom_boxplot
代替geom_bar
,并且它有效。
在这种情况下,无需更改框宽。
因此,将上面代码的最后一行更改为:
p + geom_boxplot(aes(fill = factor(gp)),position=position_dodge(1))
做了这个伎俩。