R语言plot()绘图:如何为两条垂直竖线之间的区域填充阴影
R基础绘图指定区间填充阴影实现方法
你可以使用基础绘图系统的rect()函数实现需求,核心是调用par("usr")获取当前绘图区域的完整Y轴边界,填充范围不受曲线数据取值限制。
注意优先调整图层顺序:先画底层阴影,再绘制折线、竖线等上层元素,避免阴影遮挡数据内容,完整代码示例如下:
# 示例数据,可替换为你的实际y数据 set.seed(123) y <- rnorm(40, mean = 0, sd = 1) # 1. 预生成绘图坐标轴,type = "n"表示先不渲染数据折线 plot(1980:2019, y, type = "n") # 2. 获取当前绘图区的坐标边界,返回值格式为 c(x最小值, x最大值, y最小值, y最大值) plot_range <- par("usr") # 3. 绘制区间阴影 rect( xleft = 1990, xright = 2001, ybottom = plot_range[3], ytop = plot_range[4], col = adjustcolor("lightgray", alpha.f = 0.3), # 带透明度的阴影颜色 border = NA # 隐藏阴影区域的边框 ) # 4. 绘制上层数据元素 lines(1980:2019, y, type = "l") abline(v = 1990, col = "red") abline(v = 2001, col = "red")
参数调整说明
- 调整
adjustcolor的alpha.f参数可以修改阴影透明度,取值范围0-1,数值越小透明度越高 - 若不需要透明效果,可直接给
col参数赋值纯色名称,例如col = "lightblue" - 若已经先绘制了折线,只需调低阴影透明度即可避免折线被完全遮挡
内容的提问来源于stack exchange,提问作者Joe94
相关产品推荐
相关产品推荐

