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

多数据源下Plotly折线图显示异常问题排查求助

问题分析与解决方案

首先,咱们直接戳中核心问题:你的last_updated字段只保留了时分信息,丢失了关键的日期数据。当你合并不同日期的游乐设施数据时,Plotly绘制折线图会把所有相同时分的点(比如2026-02-01的00:01和2026-03-18的00:01)当成x轴上的同一位置,导致折线在不同日期的同时间点之间无规律跳转——这就是你看到红色线条乱跳的根本原因。

排查思路

  1. 检查时间字段完整性:你打印的DataFrame里last_updated只有00:01这种时分格式,但ride字段却包含了日期(比如2026-03-18-Aquatopia)。Plotly绘制折线时只依据x='last_updated',完全忽略ride里的日期,自然会把不同日期的同时间点错误连接。
  2. 验证hover信息:把鼠标悬停在异常跳转的折线点上,查看对应的ride值,你会发现跳转的点一定来自不同日期的游乐设施,因为它们的时分相同,被Plotly强制放在了x轴同一位置。

解决方案

最直接有效的方法是修复last_updated字段,保留完整的日期+时分格式,让Plotly能正确识别时间顺序:

方法一:修复时间字段(推荐)

修改load_data函数,不要只提取时分,而是将CSV中的日期参数和提取的时分合并成完整的datetime类型:

def load_data(self, date, ride_name, park_name):
    filename = f"{os.getenv('SAVE_PATH')}{park_name}/{date}/{date}_{ride_name}.csv"
    df = pd.read_csv(filename, header=0, delimiter=', ')
    
    # 合并日期与时分,生成完整时间字符串
    df["last_updated"] = df["last_updated"].apply(
        lambda x: f"{date} {re.match(r'.* (\d\d:\d\d):\d\+09:00', x)[1]}"
    )
    # 转换为datetime类型,让Plotly正确解析时间轴
    df["last_updated"] = pd.to_datetime(df["last_updated"])
    
    # ride字段只保留游乐设施名称即可,日期已包含在last_updated里
    df["ride"] = ride_name.replace('_', ' ')
    return df

修改后,update_data_frame里的排序和绘图逻辑无需改动——Plotly会根据完整的datetime值在x轴上正确排列所有点,不同日期的同时间点会被放在x轴的不同位置,折线也就不会乱跳了。

方法二:保留现有ride字段的替代方案

如果必须让ride字段包含日期(比如用于图例区分),可以创建一个包含完整日期+时分的新字段作为x轴:

def load_data(self, date, ride_name, park_name):
    filename = f"{os.getenv('SAVE_PATH')}{park_name}/{date}/{date}_{ride_name}.csv"
    df = pd.read_csv(filename, header=0, delimiter=', ')
    
    # 提取时分
    df["last_updated"] = df["last_updated"].apply(
        lambda x: re.match(r'.* (\d\d:\d\d):\d\+09:00', x)[1]
    )
    # 创建完整时间字段
    df["full_datetime"] = pd.to_datetime(f"{date} {df['last_updated']}")
    df["ride"] = f"{date}-{ride_name.replace('_', ' ')}"
    
    return df

然后在绘图时将x='full_datetime',同样能解决跳转问题,但不如方法一简洁。

额外优化点

你代码里的full函数(应该是生成重复值的工具函数)可以直接用df["ride"] = ride_name替代,不需要把日期塞进ride字段——毕竟完整时间已经包含了日期信息,这样图例也会更简洁易读。

修改完成后,重新合并数据并绘图,折线图就会按时间顺序正确连接每个游乐设施的等待时间点,不会再出现跨日期的异常跳转了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 09:49:06