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

Plotly Express绘图:默认展示部分DataFrame列,其余列可按需勾选

解决Plotly Express折线图默认隐藏指定列并保留交互的问题

实现思路

Plotly生成的图表trace对象有个visible属性,将其设为'legendonly'就能让对应折线默认不显示,但仍保留在图例中,完全支持手动勾选切换显示/隐藏状态。不需要修改原始DataFrame,直接调整生成的figure对象即可。

完整代码示例

假设你的DataFrame为df,把需要默认隐藏的列名放在列表columns_to_hide中:

import plotly.express as px
import pandas as pd
import numpy as np

# 示例DataFrame(替换为你的实际数据即可)
dates = pd.date_range(start='2024-01-01', periods=10)
df = pd.DataFrame(
    np.random.randn(10, 5),
    index=dates,
    columns=['A', 'B', 'C', 'D', 'E']
)

# 用Plotly Express绘制折线图
fig = px.line(df, x=df.index, y=df.columns)

# 指定需要默认隐藏的列
columns_to_hide = ['C', 'E']

# 遍历所有trace,设置对应列的显示状态
for trace in fig.data:
    if trace.name in columns_to_hide:
        trace.visible = 'legendonly'

# 渲染图表
fig.show()

关键细节说明

  • visible属性的三种可用取值:
    • True:默认显示(Plotly Express的初始设置)
    • False:彻底隐藏,不会出现在图例中,无法交互切换
    • 'legendonly':默认不显示,但保留在图例内,可通过勾选操作控制显示/隐藏
  • 注意trace.name必须和你要隐藏的列名完全匹配,因为Plotly Express生成的trace名称就是DataFrame的列名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:15:36