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

请求修改ggplot代码生成GLP与No GLP队列并发症率对比柱状图

调整ggplot代码实现GLP/No GLP队列并发症发生率分组对比柱状图

核心调整思路

将堆叠分面柱状图改为分组并排样式,关键是修改geom_col的位置参数为position_dodge(),并调整数据映射逻辑(移除分面,将队列作为填充变量、并发症类型作为X轴)。


数据格式适配(若需)

如果你的GLPcomprate是宽格式(每行对应一种并发症,列分别为GLP和No GLP的发生率),先转换为长格式:

library(tidyr)

GLPcomprate_long <- GLPcomprate %>%
  pivot_longer(
    cols = c("GLP", "No GLP"), # 替换为你实际的队列列名
    names_to = "Group",
    values_to = "Rate"
  )

若数据已是长格式(包含Complication_Type、Group、Rate字段),可直接跳过此步骤。


调整后的ggplot代码

library(ggplot2)

ggplot(GLPcomprate_long, aes(x = Complication_Type, y = Rate, fill = Group)) +
  # 分组并排柱状图,width控制柱子宽度,position_dodge控制分组间距
  geom_col(position = position_dodge(width = 0.8), width = 0.7) +
  # 添加百分比标签,位置与柱子对齐
  geom_text(
    aes(label = paste0(Rate, "%")),
    position = position_dodge(width = 0.8),
    vjust = -0.5, # 标签置于柱子上方
    size = 3.5
  ) +
  # 自定义图表标签
  labs(
    title = "GLP与No GLP队列并发症发生率对比",
    x = "并发症类型",
    y = "发生率 (%)",
    fill = "队列分组"
  ) +
  theme_bw() +
  # 若并发症名称过长,旋转X轴标签避免重叠
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

关键修改点说明

  1. 移除分面逻辑:删除原代码中的facet_wrap()/facet_grid(),将并发症类型直接映射到X轴
  2. 设置分组并排:geom_col的position = position_dodge()实现同一X轴类别下的柱子并排展示
  3. 标签对齐:geom_text的position_dodge宽度需与geom_col保持一致,确保标签对应正确柱子
  4. 格式适配:宽格式数据必须转换为长格式,才能让ggplot正确识别分组变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:20:00