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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Plotly add_trace go.scatter for-loop在图例中只用唯一的轨迹名称填充。相关的知识,希望对你有一定的参考价值。

我目前的代码使用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填充图例做我想要的事情。谢谢。

答案

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

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)

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

以上是关于用Plotly add_trace go.scatter for-loop在图例中只用唯一的轨迹名称填充。的主要内容,如果未能解决你的问题,请参考以下文章

Plotly:循环中的 add_trace

plotly R中的多行不使用add_trace

R plotly add_trace 到带有颜色组的图表

如何在 Plotly 的图中定位图例

如何使用 plotly 绘制枢轴点?

Plotly:热图颜色图例我的子图