pandas 图例不显示在Plotly Express线子图中

oxalkeyp  于 2023-06-04  发布在  其他
关注(0)|答案(1)|浏览(146)

如果您使用的是plotly.graph_objs,则有几种方法可以显示图例。我只使用plotly_express,但是当使用几个子图时,无法显示图例。
我有以下代码。

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

subfig = make_subplots(specs=[[{"secondary_y": True}]])
fig1 = px.line(df1, 
               x='col1', 
               y='col2',
)
fig2 = px.line(df2, 
               x='col1', 
               y='col2',
)

# Add a second y-axis
fig2.update_traces(yaxis="y2")

# Combine the two figs into one graph
subfig.add_traces(fig1.data + fig2.data)

我尝试添加以下内容(如解决plotly.graph_objs的答案所建议的),但没有结果:

subfig.update_layout(showlegend=True)

px.line()也没有可以更新的name属性。
我如何使图例显示为情节表达的子情节?

mf98qq94

mf98qq941#

我能够通过更新到以下内容来解决它:

# Add a second y-axis and show legend
fig2.update_traces(yaxis="y2", showlegend=True)
fig1.update_traces(showlegend=True)

# Combine the two figs into one graph
subfig.add_traces(fig1.data + fig2.data)

# Update legend titles
subfig.data[0].name = "Title line 1"
subfig.data[1].name = "Title line 2"

您也可以使用subfig.for_each_trace(...)(虽然还没有尝试过),但我更喜欢这种更直接的方法。

相关问题