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

Python Dash中滑门数字信号矩形折线图实现及数据处理咨询

Dash里显示门开关信号的矩形折线方案

不用改数据的最优解法

直接用折线图类型,给line参数加个shape='hv',再开启connectgaps=True就行。hv代表水平-垂直转折,能完美呈现你要的矩形阶梯效果,完全不用折腾原始CSV数据。

示例代码参考:

import plotly.graph_objects as go

# 假设已加载包含timestamp和door_state的DataFrame
fig.add_trace(go.Scatter(
    x=df['timestamp'],
    y=df['door_state'],
    mode='lines',
    line=dict(shape='hv'),  # 核心设置:让折线按水平-垂直转折
    connectgaps=True,       # 确保时间间隔段被正确连接
    name='门状态'
))

备选:扩展数据补状态(仅适合特殊场景)

如果非得用散点图或有其他特殊需求,才需要扩展数据。做法是每次状态变化时,给上一个状态的时间戳末尾补一条相同状态的记录,时间戳设为下一个状态变化的同一时刻。比如原始数据是10:00 → 0、10:05 → 1,扩展后变成:

  • 10:00 → 0
  • 10:05 → 0
  • 10:05 → 1
    这样用折线连接就不会出现斜坡,但这种方法需要额外处理数据,远不如第一种省事。

总结

优先选第一种方法,直接靠Plotly的参数实现,完全适配数字开关信号的显示需求,省事儿还靠谱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:45:36