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
相关产品推荐
相关产品推荐

