使用 position_dodge 对你的geom的争论。我在这里选择一个更小的例子,但你应该能够从那里推广它。
position_dodge
test <- data.frame( a=1:9, b=rep(letters[1:3], 3), c=rep(letters[1:3], each=3) ) ggplot(test, aes(y=a, x=b, group=c, fill=c)) + geom_col(position="dodge") + geom_vline(xintercept = 1.5)
(基于这个答案: ggplot并排geom_bar() )