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

如何默认停用Plotly Express折线图中的指定分组?

实现方法

要实现默认隐藏指定分组但保留切换选项的需求,核心是修改Plotly图表中对应trace的visible属性,将需要隐藏的分组设为'legendonly'——这个值会让折线默认不显示,但图例中的条目依然存在,点击即可切换显示状态。

具体步骤与代码示例

  1. 正常生成折线图:先用px.line创建基础图表,得到Figure对象。
  2. 遍历并修改trace可见性:检查每个trace的name(对应color参数的分组值),将目标分组的visible设为'legendonly'。

示例代码:

import plotly.express as px
import pandas as pd

# 构造示例数据(替换成你的实际数据)
df = pd.DataFrame({
    'Date': pd.date_range(start='2023-01-01', periods=10, freq='D'),
    'Value': [10, 12, 15, 13, 16, 18, 20, 17, 19, 21],
    'Group': ['A', 'A', 'B', 'B', 'P', 'P', 'A', 'B', 'P', 'A']
})

# 生成基础折线图
fig = px.line(df, x='Date', y='Value', color='Group')

# 指定需要默认隐藏的分组
hidden_groups = ['P']

# 遍历所有trace,设置可见性
for trace in fig.data:
    if trace.name in hidden_groups:
        trace.visible = 'legendonly'

# 导出为离线HTML仪表盘
fig.write_html('dashboard.html')

进阶优化(常用分组少的场景)

如果常用分组数量远少于总分组,更高效的方式是先默认隐藏所有分组,再将常用分组设为可见:

# 指定需要默认显示的分组
show_groups = ['A', 'B']

for trace in fig.data:
    trace.visible = trace.name in show_groups

这样处理后,未在show_groups中的分组都会默认隐藏,图例中依然保留所有分组的切换入口,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:42:54