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

如何用Python的Plotly绘制单图例的置信区间折线图

解决Plotly图表填充边界与图例优化问题

针对你的需求,以下是修改后的代码及关键调整说明:

修改后代码

import plotly.graph_objs as go

# 下界trace:隐藏线条,不显示图例
trace1 = go.Scatter(
    x=df.index, 
    y=df['lower'], 
    name='Lower Bound',
    line=dict(color='rgba(0,0,0,0)'),  # 透明化隐藏边界线
    showlegend=False
)

# 上界trace:填充到下界区域,隐藏线条,不显示图例
trace3 = go.Scatter(
    x=df.index, 
    y=df['upper'], 
    name='Upper Bound',
    fill='tonexty',  # 填充到前一个trace(下界)的区域
    fillcolor='rgba(255,0,0,0.2)',
    line=dict(color='rgba(0,0,0,0)'),  # 透明化隐藏边界线
    showlegend=False
)

# 中位数trace:作为核心显示线条,唯一图例条目
trace2 = go.Scatter(
    x=df.index, 
    y=df['median'], 
    name='Median',
    line=dict(color='blue', width=2),
    showlegend=True
)

# 布局设置
layout = go.Layout(
    xaxis=dict(title='Date'), 
    yaxis=dict(title='title')
)

# 注意trace顺序:下界 → 上界 → 中位数,保证填充逻辑生效
fig = go.Figure(data=[trace1, trace3, trace2], layout=layout)

context['pltyplot'] = pltyplot(fig, output_type="div")

关键调整说明

  • 修复填充区域:通过调整trace顺序(下界→上界→中位数),让上界trace的fill='tonexty'填充到下界trace,生成上下界之间的完整填充区域,匹配目标图样式。
  • 简化图例:将上下界trace的showlegend设为False,仅保留中位数trace的图例条目,实现单一图例需求。
  • 隐藏冗余线条:将上下界的线条设为透明(rgba(0,0,0,0)),避免显示多余的边界线,突出中间的中位数核心线条。

如果需要保留上下界的蓝色线条,可删除line=dict(color='rgba(0,0,0,0)')这一行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:31:06