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

如何在折线图上叠加带透明度(alpha值)的矩形标记阶段?

折线图叠加透明阶段矩形实现方案(Matplotlib)

下面以Python的Matplotlib库为例,直接实现你要的需求——在折线图上叠加覆盖整个垂直范围的透明阶段矩形:

核心实现代码

import matplotlib.pyplot as plt
import numpy as np

# 生成示例折线数据
x = np.arange(0, 50)
y = np.random.randn(50).cumsum()

# 创建绘图对象
fig, ax = plt.subplots(figsize=(10, 6))
# 绘制折线图
ax.plot(x, y, label='折线数据')

# 定义各阶段的起始/结束索引、颜色、标签
stages = [
    (5, 15, '#ffcccc', '阶段A'),
    (20, 30, '#ccffcc', '阶段B'),
    (35, 45, '#ccccff', '阶段C')
]

# 循环绘制每个阶段的透明矩形
for start_idx, end_idx, color, label in stages:
    # axvspan自动填充整个y轴范围,alpha控制透明度
    ax.axvspan(start_idx, end_idx, alpha=0.3, color=color, label=label)

# 调整图例(避免重复显示相同标签)
handles, labels = plt.gca().get_legend_handles_labels()
by_label = dict(zip(labels, handles))
ax.legend(by_label.values(), by_label.keys())

plt.xlabel('横轴索引')
plt.ylabel('数值')
plt.title('带阶段标记的折线图')
plt.show()

关键说明

  • 使用ax.axvspan()方法是最简便的方式,它会自动将矩形垂直填充整个图表的y轴范围,无需手动设置y轴的上下限
  • 参数解释:
    • xmin/xmax:对应你已知的阶段起始、结束横轴索引
    • alpha:设置透明度,取值0(完全透明)到1(完全不透明)之间
    • color:矩形填充色,支持十六进制色码、颜色名称等
    • label:阶段名称,用于图例显示
  • 如果你的横轴不是连续索引而是自定义数值,只需把start_idx和end_idx替换为对应的横轴数值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:28:13