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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 21:57:04