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

指定x轴与y轴绘图时y轴数值异常问题排查

指定x轴后Matplotlib图形异常的排查与修复

核心原因分析

单独调用ax.plot(temps)时,Matplotlib默认使用连续递增的索引值作为x轴,折线会按数据顺序平滑连接。而指定hours作为x轴后异常,大概率是以下两类问题:

  • hours序列并非有序排列,导致折线在x轴上来回跳转,视觉上显得混乱
  • hours中存在异常值(如超大/超小数值),挤压了y轴的显示范围,让温度曲线看起来异常

具体排查与解决步骤

  • 检查并修复hours的排序问题
    先确认hours是否按顺序排列:

    print(df['timestamps'].values)
    

    如果发现hours是乱序的,先对DataFrame按timestamps排序后再绘图:

    df_sorted = df.sort_values(by='timestamps')
    fig, ax = plt.subplots()
    ax.plot(df_sorted['timestamps'], df_sorted['temps'])
    
  • 排查hours的数值异常
    查看hours的统计信息,确认是否存在超出合理范围的数值:

    print(df['timestamps'].describe())
    

    如果有异常值,先过滤清洗数据:

    # 示例:保留0-24范围内的时间数据(根据实际业务调整范围)
    df_clean = df[(df['timestamps'] >= 0) & (df['timestamps'] <= 24)]
    fig, ax = plt.subplots()
    ax.plot(df_clean['timestamps'], df_clean['temps'])
    
  • 验证数据类型与完整性
    确认两列数据均为有效数值类型,无缺失或非数值混入:

    # 转换为数值类型,无法转换的设为NaN
    df['timestamps'] = pd.to_numeric(df['timestamps'], errors='coerce')
    df['temps'] = pd.to_numeric(df['temps'], errors='coerce')
    # 删除包含缺失值的行
    df = df.dropna(subset=['timestamps', 'temps'])
    fig, ax = plt.subplots()
    ax.plot(df['timestamps'], df['temps'])
    
  • 小样本测试定位问题
    取前10行数据测试,判断是整体数据问题还是局部数据异常:

    sample_df = df.head(10)
    fig, ax = plt.subplots()
    ax.plot(sample_df['timestamps'], sample_df['temps'])
    

    如果小样本显示正常,再逐步扩大范围排查异常数据行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:25:19