You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在legendgroup内单独显隐线条及实现组间嵌套分组

Plotly Go.Scatter 分组显隐控制需求

需求1:组内单线条独立控制 + 组批量控制

已通过legendgroup对多条go.Scatter线条分组,点击组可批量显隐组内线条。现在需要实现:

  • 既能单独控制组内每条线条的显隐(部分线条初始设为隐藏状态)
  • 点击legendgroup仍能一键控制组内所有线条(包括填充区域)的显隐

示例代码:

traceList.append(go.Scatter(x=datePrices, y=dfAreas.extendLow, mode='lines', name='extendLow',
                              line_color=LAVENDER, fill=None, visible="legendonly", legendgroup="AREA"))
traceList.append(go.Scatter(x=datePrices, y=dfAreas.AREAHAlow, mode='lines', name='AREALow', 
                              line_color="rgb(255,0,255)", fill= None, fillcolor=AREA_FILL, legendgroup="AREA"))
traceList.append(go.Scatter(x=datePrices, y=dfAreas.AREAHAclose, mode='lines', name='AREA',
                              line_color=AREA, fill=None, fillcolor=AREA_FILL, line_width=3, legendgroup="AREA")) 
traceList.append(go.Scatter(x=datePrices, y=dfAreas.AREAHAhigh, mode='lines', name='AREAHigh',
                              line_color=AREA_UP, fill="tonexty", fillcolor=AREA_FILL, legendgroup="AREA"))                             
traceList.append(go.Scatter(x=datePrices, y=dfAreas.extendHigh, mode='lines', name='extendHigh',
                              line_color=LAVENDER, fill="tonexty", visible="legendonly", legendgroup="AREA"))    

需求2:legendgroup嵌套分组

现有"Gains"和"Losses"两个legendgroup分组,需要将这两个组再组合,实现一键批量显隐这两个组的所有线条。

示例代码:

traceList.append(go.Scatter(x=dfGainsOne.date, y=dfGainsOne.close, mode='lines', name='Gains', line_width=3,
                           line_color=colorGains, fill= None, legendgroup="Gains", showlegend=True)) 
traceList.append(go.Scatter(x=dfGainsTwo.date, y=dfGainsTwo.close, mode='lines', name='GainsTwo', line_width=3,
                           line_color=colorGains, fill= None, legendgroup="Gains", showlegend=False)) 
traceList.append(go.Scatter(x=dfLossesOne.date, y=dfLossesOne.close, mode='lines', name='Losses', line_width=3,
                           line_color=colorLosses, fill= None, legendgroup="Losses", showlegend=True)) 
traceList.append(go.Scatter(x=dfLossesTwo.date, y=dfLossesTwo.close, mode='lines', name='LossesTwo', line_width=3,
                           line_color=colorLosses, fill= None, legendgroup="Losses", showlegend=False)) 

补充说明

若建议通过弹窗实现上述操作,请提供相关示例代码(禁止外链跳转)


内容的提问来源于stack exchange,提问作者SoftwareTester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:57:50