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

如何在Plotly图表中添加按钮切换多条trace显示状态

Plotly散点图批量切换Trace显示状态按钮实现

切换按钮参考样式

你要的分段式切换按钮可直接通过Plotly原生的updatemenus配置实现,无需引入额外前端组件。核心逻辑是通过按钮触发restyle方法,批量修改所有Trace的visible属性,即可实现全显/全隐的切换效果。

完整可运行示例代码

import plotly.express as px

# 构建基础散点图
df = px.data.iris()
fig = px.scatter(
    df, 
    x="sepal_length", 
    y="sepal_width", 
    color="species",
    title="散点图Trace批量切换示例"
)

# 配置切换按钮
fig.update_layout(
    updatemenus=[
        dict(
            type="buttons",
            direction="right",
            # 按钮定位到画布右上角,对齐参考样式位置
            x=1.02,
            y=1.15,
            showactive=True,
            # 基础样式匹配分段按钮效果
            bgcolor="#f0f0f0",
            bordercolor="#cccccc",
            font=dict(size=12),
            buttons=[
                dict(
                    label="显示全部",
                    method="restyle",
                    # 批量将所有Trace设为可见
                    args=[{"visible": [True] * len(fig.data)}]
                ),
                dict(
                    label="隐藏全部",
                    method="restyle",
                    # 批量将所有Trace设为隐藏
                    args=[{"visible": [False] * len(fig.data)}]
                )
            ],
            # 按钮内边距调整
            pad=dict(r=5, t=5),
            buttondefaults=dict(
                borderwidth=1,
                padding=dict(l=12, r=12, t=6, b=6)
            )
        )
    ]
)

fig.show()

注:以上配置对plotly.express和plotly.graph_objects创建的所有散点图通用

自定义调整说明

  • 位置调整:修改x、y参数即可移动按钮位置,参数值为相对绘图区域的比例值,范围0-1
  • 样式匹配:调整bgcolor、bordercolor、font、padding参数,可完全匹配你提供的参考按钮的视觉效果
  • 功能扩展:如果需要新增单分类切换、按条件筛选Trace的按钮,只需在buttons列表中新增对应配置,在args中指定目标Trace的可见状态即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:33:11