用Plotly add_trace go.scatter for-loop在图例中只用唯一的轨迹名称填充。

问题描述 投票:0回答:1

我目前的代码使用for-loop来填充plotly线图,一般会添加数百个趋势。

fig.add_trace(go.Scatter(
        x=x_axis_data,
        y=y_axis_data,
        mode='lines',
        legendgroup="Data Group 1",
        name='Data',
        line=dict(
            color='royalblue',
            dash ='dot',
            width=3.5,
        )
    ),row=1,col=j)   

一旦我所有的轨迹都被添加了,我就使用下面的方法(我知道这是默认设置)。

 fig.update_layout(showlegend=True)

我的问题是,在图例中,我最终会给每条轨迹都加上一个图例标题,而我只想显示以下两种情况:

1)只显示唯一的轨迹名称(没有重复),或者2)图例组名称(每个图例只显示1次,而不是每个趋势都显示一次)。

有没有一种方法可以在不添加假痕迹等的情况下做到这一点?顺便说一下,我已经审查了以下资源。https:/plotly.pythonlegend. 如果我不使用for-loop用一个fig.add_trace函数填充多个痕迹,这将按原样工作,但我不能让它用for-loop填充图例做我想要的事情。谢谢。

python plotly
1个回答
1
投票

做到这一点的方法是说明是否要在你的跟踪中显示图例,无论你的条件是什么。

fig.add_trace(go.Scatter(
    x=x_axis_data,
    y=y_axis_data,
    mode='lines',
    showlegend=True if condition is True else False,
    legendgroup="Data Group 1",
    name='Data',
    line=dict(
        color='royalblue',
        dash ='dot',
        width=3.5,
    )
),row=1,col=j)

在你的布局中是否显示图例是绝对的,而不是特定的轨迹。

© www.soinside.com 2019 - 2024. All rights reserved.