You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个geom_col绘图的对应条形并排合并?

解决方案:实现两组条形图并排展示

要让两个geom_col的对应条形并排,核心是给两个图层的x轴位置设置偏移量,避免重叠。结合你已用的ggnewscale实现双填充刻度,具体代码如下:

library(ggplot2)
library(ggnewscale)

df<-data.frame(names=c("A","B","C","D","E","F","G","H","I"), 
               frequency=c(0.1,0.7,0.2,0.4,0.4,0.2,0.8,0.1,0.1),
               group=c("1","2","3","3","2","1","1","2","3"))

ggplot(df) +
  # 第一组条形:按group填充,x轴向左偏移0.2
  geom_col(aes(x = as.numeric(group) - 0.2, y = frequency, fill = group), 
           width = 0.4) +
  scale_fill_manual(values=c("#CCCCCC","#ABABAB","#818181"), name = "Group") +
  # 切换填充刻度
  new_scale_fill() +
  # 第二组条形:按names填充,x轴向右偏移0.2
  geom_col(aes(x = as.numeric(group) + 0.2, y = frequency, fill = names), 
           width = 0.4) +
  # 还原x轴刻度为原group字符,保证可读性
  scale_x_continuous(breaks = 1:3, labels = c("1","2","3"), name = "group")

关键细节说明:

  • 将group转为数值型后,通过±0.2给两组条形设置左右偏移,实现并排效果。
  • 设置width=0.4,保证两组条形总宽度(0.4+0.4=0.8)不会超出x轴刻度间距,避免拥挤。
  • 用scale_x_continuous将数值化的x轴刻度还原为原始group字符,保持图表展示逻辑一致。

内容的提问来源于stack exchange,提问作者Kübra Çelikbaş

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:12:10