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

如何用R的ggplot2绘制带误差棒的分组并列图?

解决分组并列带误差棒的绘图问题

要实现每个州下灵敏度(Sensitivity)和特异度(Specificity)的并列布局,核心是给geom_point()和geom_errorbar()添加position_dodge()参数,让同组内的元素错开显示。

修改后的完整代码:

library("ggplot2")
set.seed(123) # 设置随机种子保证结果可重复
data <- data.frame(
  x = c("AZ","AZ","CT","CT","IL","IL"),
  sen_spe = c(rep(c("Sensitivity","Specificity"),3)),
  y = runif(6, 0, 1),
  lower = runif(6, 0, 0.1),
  upper = runif(6, 0, 0.1)
)

data$lower <- data$y - data$lower
data$upper <- data$y + data$upper

ggplot(data, aes(x = x, y = y, color = sen_spe, fill = sen_spe)) +
  geom_point(position = position_dodge(width = 0.7)) + # 让点并列错开
  geom_errorbar(aes(ymin = lower, ymax = upper), 
                width = 0.2, # 设置误差棒的横向宽度
                position = position_dodge(width = 0.7)) + # 误差棒和点保持同步错开
  labs(title = "各州灵敏度与特异度对比",
       x = "州",
       y = "指标值",
       color = "指标类型",
       fill = "指标类型") +
  theme_bw()

关键说明

  • position_dodge(width = 0.7):控制同x轴分组(同一州)下不同指标的横向错开距离,width值可根据需求调整,让元素间距更合理。
  • 给geom_errorbar()设置width = 0.2是为了让误差棒的横向短线更美观,避免和其他元素重叠。
  • 加入set.seed(123)是为了固定随机生成的数据,方便复现结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:55:08