如何在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
相关产品推荐
相关产品推荐

