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

Facebook Prophet时间序列图如何调整yerr的颜色与透明度

调整Prophet预测图置信区间颜色与透明度的实现

现存代码的问题

  • 你当前代码中传入的yerr=17是固定值误差,并非Prophet模型计算的动态置信区间。Prophet返回的forecast数据帧中,已经预先存储了每个时间点对应的置信上下界yhat_lower、yhat_upper,用固定值误差不仅预测结果不准确,也无法灵活控制误差填充区域的视觉属性。
  • pandas自带的plot()方法对误差区域的自定义支持非常有限,要调整误差带的颜色、透明度,建议使用matplotlib原生API实现,可配置项更全。

正式出图的推荐实现

下面的代码完全对齐你原有的坐标范围、线色设置,同时可以自由调整置信带的视觉效果:

import matplotlib.pyplot as plt

# 初始化画布尺寸
fig, ax = plt.subplots(figsize=(12, 8))

# 绘制历史观测值,匹配你原有pro_la.plot的散点效果
ax.plot(pro_la['ds'], pro_la['y'], 'k.', label='历史观测值')

# 绘制预测均值的绿色主线
ax.plot(
    forecast_low['ds'],
    forecast_low['yhat'],
    color='green',
    label='预测值yhat'
)

# 绘制可自定义属性的置信区间填充带
ax.fill_between(
    x=forecast_low['ds'],
    y1=forecast_low['yhat_lower'],
    y2=forecast_low['yhat_upper'],
    color='green',
    alpha=0.2,  # 透明度取值范围0-1,按需调整数值
    label='95%置信区间'
)

# 沿用你设置的坐标范围
ax.set_xlim('2020-01-01', '2021-04-30')
ax.set_ylim(0, 275)

# 优化展示
ax.legend()
plt.tight_layout()
plt.show()

临时快速调整的方案

如果不想替换原有绘图逻辑,只想在现有输出基础上调整置信带效果,可以在原有绘图代码后追加属性修改逻辑:

# 运行你原有的绘图代码
ax = pro_la.plot(x ='ds', y='y',figsize = (12,8))
ax =forecast_low.plot(x='ds',y='yhat',color = 'green', yerr = 17, xlim=('2020-01-01','2021-04-30'), ylim = (0,275),figsize = (12,8), ax=ax)

# 遍历Axes对象中的填充元素,调整视觉属性
for patch in ax.patches:
    patch.set_alpha(0.3)  # 修改透明度
    patch.set_facecolor('#80d880') # 修改填充色为柔和浅绿

注意:这个临时方案依旧保留了原有代码使用固定误差值的缺陷,生成的误差带不是模型真实的动态置信区间,仅适合临时预览效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 01:06:03