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

优化Plotly折线图:实现初始单线条显示后逐步加载其余线条

问题描述

我用Plotly实现了折线图,但因为线条过多,初始展示时画面杂乱,无法清晰查看各线条。希望实现初始仅显示一条线条,后续可通过图例点击逐步显示其余线条。

当前效果:
当前折线图:多条线条同时显示,画面杂乱

期望初始效果:
期望初始折线图:仅显示一条线条,其余通过图例切换

我的代码如下:

# Line plot for Hour VS Bicycle Rented
hour_line_plot1 = px.line(
    data_frame=df_bike.groupby(['DayofWeek','Hour']).mean('Count').reset_index(),
    x='Hour', y='Count', color='DayofWeek', markers=True,
    labels={'Hour': 'Time', 'Count': 'Average Bike Used'},
    template="simple_white"
)

解决方案

只需修改Plotly图表中各trace的visible属性,将除目标线条外的所有线条设为'legendonly',即可实现初始仅显示指定线条,其余线条通过图例点击切换显示。

修改后的完整代码:

# Line plot for Hour VS Bicycle Rented
hour_line_plot1 = px.line(
    data_frame=df_bike.groupby(['DayofWeek','Hour']).mean('Count').reset_index(),
    x='Hour', y='Count', color='DayofWeek', markers=True,
    labels={'Hour': 'Time', 'Count': 'Average Bike Used'},
    template="simple_white"
)

# 遍历所有trace,仅保留第一条初始可见,其余设为图例可控
for idx, trace in enumerate(hour_line_plot1.data):
    if idx != 0:
        trace.visible = 'legendonly'

# 渲染图表
hour_line_plot1.show()

关键说明

  • 'legendonly'状态:线条默认隐藏,但会出现在图例中,点击图例即可切换显示/隐藏
  • 自定义初始显示线条:若想指定其他线条作为初始显示项,修改idx != 0中的索引值即可(比如idx != 2表示初始显示第3条线条)
  • 完全保留交互性:用户可自由点击图例,单独或批量显示任意线条

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:25:30