如何用ggplot2绘制带上下限的分组垂直误差条形图?
替换为垂直误差条形的实现方法
只需将原代码中的geom_ribbon替换为ggplot2的geom_errorbar函数,即可为每个数据点生成对应分组的垂直误差条,具体代码如下:
library(ggplot2) library(zoo) # 原数据构造逻辑保持不变 dat = rbind( data.frame( 'Quarter' = as.yearqtr(as.Date(c('2000-01-01', '2002-01-01', '2004-01-01', '2006-01-01'))), 'Val' = c(10,20,30,40), 'Val_Lower' = c(10,20,30,40) - 5, 'Val_Upper' = c(10,20,30,40)+5, type = rep('A', 4) ), data.frame( 'Quarter' = as.yearqtr(as.Date(c('2000-01-01', '2002-01-01', '2004-01-01', '2006-01-01'))), 'Val' = c(10,20,30,40)-5, 'Val_Lower' = c(10,20,30,40)-5 - 5, 'Val_Upper' = c(10,20,30,40)+5-5, type = rep('B', 4) ) ) # 绘图代码修改 ggplot(dat, aes(x = Quarter, y = Val)) + # 绘制垂直误差条,width控制两端短线宽度 geom_errorbar(aes(color = type, ymin = Val_Lower, ymax = Val_Upper), width = 0.1) + # 保留原有的分组散点 geom_point(aes(color = type))
关键说明:
geom_errorbar是ggplot2中专门用于绘制误差棒的函数,传入ymin(下限)和ymax(上限)即可生成垂直误差条width = 0.1用于调整误差条两端横向短线的长度,避免不同组的误差条互相重叠,可根据需求自行调整数值- 保持
color = type的映射关系,让误差条与对应组的散点颜色一致,分组视觉区分更清晰 - 如果需要调整误差条的透明度,可添加
alpha参数(如alpha = 0.7)
内容的提问来源于stack exchange,提问作者Bogaso
相关产品推荐
相关产品推荐

