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

在R中如何按多分组绘制堆叠+并列组合的ggplot2柱状图?

ggplot2实现堆叠+并列组合柱状图

需求说明

你需要绘制以age.cat为X轴、prop为Y轴的柱状图,要求:

  • 按sex实现并列分组(同年龄分组下,不同性别的柱子并列)
  • 每个并列柱子内部按activity_group实现堆叠分组(每个性别柱子由不同活动类型的比例堆叠而成)

解决方案代码

library(ggplot2)

# 绘制堆叠+并列组合柱状图
ggplot(df, aes(x = interaction(age.cat, sex), y = prop, fill = activity_group)) +
  geom_col(position = "stack") +
  # 调整X轴标签,仅显示年龄分组名称
  scale_x_discrete(labels = function(x) gsub("\\..*", "", x)) +
  # 设置轴标签与图表标题
  labs(
    x = "年龄分组",
    y = "比例",
    fill = "活动类型",
    title = "不同年龄、性别组的活动类型比例分布"
  ) +
  # 可选:使用简约主题优化视觉效果
  theme_minimal()

代码解释

  • interaction(age.cat, sex):将年龄分组与性别组合成新的X轴变量,实现同年龄下不同性别的柱子并列展示
  • fill = activity_group:指定柱子内部的堆叠分组依据为活动类型
  • scale_x_discrete:处理X轴标签,移除交互变量中的性别后缀,仅保留清晰的年龄分组名称
  • 可根据需求调整主题样式、颜色方案或标题内容,适配不同展示场景

内容的提问来源于stack exchange,提问作者aerw4

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:38:10