如何基于x2偏移ggplot2条形图并将x轴标签替换为x1?
解决方案
首先你的数据:
df <- data.frame(x1=c("A","B1","B2","C1","C2","C3"), x2=c("A","B","B","C","C","C"), y=c(1,2,3,4,5,6))
要实现基于x2分组偏移,x轴显示x1标签,直接调整ggplot的映射参数即可:将x轴映射为x1,同时用group=x2指定分组依据,这样既满足同x2的条形偏移排布,x轴也会直接显示所有x1的标签:
library(ggplot2) p <- ggplot(df, aes(x = x1, y = y, fill = x1, group = x2)) p + geom_bar(stat = "identity", position = position_dodge())
补充说明:
group=x2会让ggplot按照x2的分类对条形分组,所以同属B的B1、B2会挨在一起偏移,同属C的C1、C2、C3同理。- 如果觉得偏移间距不合适,可以调整
position_dodge()的宽度参数,比如position_dodge(width=0.8)来缩小或增大条形间的距离。
内容的提问来源于stack exchange,提问作者HappyPy
相关产品推荐
相关产品推荐

