ggplot2如何仅为指定分组线条添加geom_ribbon置信区间
你的报错是因为全局映射里的color=peaks会自动将peaks作为分组变量,geom_ribbon默认会给所有分组生成图层,eprint_peaks分组的上下界全为NA,计算范围时没有有效值就触发了警告,同时导致绘图异常,两种解决方法如下:
解决方案1:单独为置信区间图层指定数据源(更推荐)
直接给geom_ribbon筛选仅包含mean_random_peaks分组的数据,完全避开处理全NA的分组,逻辑清晰不易出问题:
ggplot(data=dat,aes(x=overlaps,y=log(N),color=peaks)) + geom_line()+ geom_ribbon(data = ~subset(.x, peaks == "mean_random_peaks"), aes(ymin=lower_boundary, ymax=upper_boundary, fill = peaks), alpha = 0.2, # 调整透明度避免遮挡折线 color = NA) # 去掉置信区间的边框,避免和折线颜色重复
解决方案2:增加na.rm参数忽略NA值
如果不想筛选数据,直接在geom_ribbon中加na.rm=TRUE参数,会自动忽略全NA的分组,也可以消除警告:
ggplot(data=dat,aes(x=overlaps,y=log(N),color=peaks)) + geom_line()+ geom_ribbon(aes(ymin=lower_boundary, ymax=upper_boundary, fill=peaks), alpha=0.2, color=NA, na.rm = TRUE)
内容的提问来源于stack exchange,提问作者moth
相关产品推荐
相关产品推荐

