如何在情节线图中有选择地隐藏图例?

Posted

技术标签:

【中文标题】如何在情节线图中有选择地隐藏图例?【英文标题】:How to hide legend selectively in a plotly line plot? 【发布时间】:2021-11-25 05:54:03 【问题描述】:

我正在努力隐藏线图中某些但不是所有线的图例。这是情节现在的样子。

Plot:

基本上我想隐藏浅灰色线条的图例,同时将彩色线条保留在原位。

这是我的代码:

import plotly.graph_objects as go

fig = go.Figure()
fig.update_layout(autosize=False, width=800, height=500, template='none')
fig.update_layout(title = 'Title', xaxis_title = 'Games', yaxis_title = 'Profit')

for team in rest_teams:
    fig.add_traces(go.Scatter(x=df['x'], y = df[team], name = team, line = 'color': '#F5F5F5'))

for team in big_eight:
    line_dict = 'color': cmap[team]
    fig.add_traces(go.Scatter(x=df['x'], y = df[team], name = team, line = line_dict))

fig.show()

我可以更新布局

fig.update_layout(showlegend=False)

它隐藏了整个事情并且不是最佳的。帮助将不胜感激。

【问题讨论】:

【参考方案1】:

如果我正确理解了您想要的输出,您可以将showlegend = False 用于您使用color = #F5F5F5 设置为灰色的轨迹:

for c in cols1:
    fig.add_trace(go.Scatter(x = df.index, y = df[c], line_color = '#F5F5F5',
                  showlegend = False))

然后将其留给您想要分配颜色的行,并确保将name = c 包含在:

for c in cols2:
    fig.add_trace(go.Scatter(x = df.index, y = df[c], 
                  name = c))

剧情:

完整代码:

import plotly.graph_objects as go
import plotly.express as px
import pandas as pd


df = px.data.stocks()
df = df.set_index('date')

fig = go.Figure()

cols1 = df.columns[:2]
cols2 = df.columns[2:]

for c in cols1:
    fig.add_trace(go.Scatter(x = df.index, y = df[c], line_color = '#F5F5F5',
                  showlegend = False))

for c in cols2:
    fig.add_trace(go.Scatter(x = df.index, y = df[c], 
                  name = c))
fig.update_layout(template=template
fig.show()

【讨论】:

以上是关于如何在情节线图中有选择地隐藏图例?的主要内容,如果未能解决你的问题,请参考以下文章

情节:如何在带有刻面的情节表达图中隐藏轴标题?

如何在 plotly express 条形图中隐藏颜色条和图例?

如何在 Plotly 的图中定位图例

如何在谷歌电子表格图中编辑图例标签?

Plotly:如何在 plotly express 折线图中更改图例的变量/标签名称?

在情节子图中合并图例