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

Plotly Express折线子图图例不显示,如何解决?

解决Plotly Express子图图例不显示的问题

你遇到的问题核心是没有给每条折线指定图例名称,而且其实px.line()是支持设置name参数的,只是你没用到。下面是具体的解决步骤和修正后的代码:

关键修正点

  • px.line()可以直接通过name参数指定折线在图例中的显示名称
  • 合并子图后,确保开启图例显示(虽然默认是True,但明确设置更稳妥)

修正后的完整代码

import plotly.express as px
from plotly.subplots import make_subplots

subfig = make_subplots(specs=[[{"secondary_y": True}]])

# 创建折线图时直接指定name,用于图例显示
fig1 = px.line(df1, 
               x='col1', 
               y='col2',
               name='数据集1'  # 设置第一条线的图例名称
)
fig2 = px.line(df2, 
               x='col1', 
               y='col2',
               name='数据集2'  # 设置第二条线的图例名称
)

# 将第二个图绑定到右侧y轴
fig2.update_traces(yaxis="y2")

# 合并两个图的轨迹到子图
subfig.add_traces(fig1.data + fig2.data)

# 明确开启图例显示(可选,但确保生效)
subfig.update_layout(showlegend=True)

# 可选:调整图例位置,比如放在左上角
# subfig.update_layout(legend=dict(x=0.01, y=0.99))

subfig.show()

备选方案:如果已生成图再设置名称

如果你已经创建了fig1和fig2,也可以通过update_traces给轨迹补加名称:

fig1.update_traces(name='数据集1')
fig2.update_traces(name='数据集2')

这样操作后,子图的图例就会正常显示两条折线的名称了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:43:17