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

如何在ggplot比例条形图Y轴类别中添加样本量与百分比?

实现ggplot2带误差棒的比例条形图并自定义Y轴标签

需要绘制带误差棒的比例条形图,将Y轴的类别名称设置为包含样本量与百分比的格式(例如:Male (n=203/360, 56.38%))。

解决方案

核心是先在数据框中生成自定义的Y轴标签列,再将其用于ggplot的y轴映射:

  • 使用dplyr::mutate创建新列,拼接类别名称、样本量和百分比信息,保留百分比两位小数
  • 在ggplot的全局映射中使用该新列作为y轴变量,误差棒将自动继承此映射

完整代码

library(ggplot2)
library(dplyr)

# 生成自定义Y轴标签列
variable_count_census <- variable_count_census %>%
  mutate(
    y_label = paste0(
      category, 
      " (n=", sur_count, "/", total_sample, 
      ", ", sprintf("%.2f", sur_percentage), "%)"
    )
  )

# 绘制条形图
variable_count_census %>% 
  ggplot(mapping = aes(x = prop, y = y_label)) + 
  geom_bar(stat = "identity", colour = "black") +
  geom_errorbar(
    aes(xmin = conf_low_percent, xmax = conf_high_percent), 
    width = 0.4, colour = "orange", alpha = 0.9, size = 1.3
  ) +
  labs(x = "咬伤比例", y = "受害者性别") + 
  ggtitle("咬伤受害者的性别分布")

关键说明

  • sprintf("%.2f", sur_percentage)确保百分比保留两位小数,格式更规范
  • 新列y_label直接作为y轴变量,替代原category,实现自定义Y轴文本
  • 误差棒无需单独指定y参数,继承全局映射即可保证位置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 07:37:51