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

Matplotlib绘制时间序列图时子图出现贯穿多余横线问题咨询

多余横线出现的原因

核心原因是数据集的时间索引未按时间升序排序:matplotlib绘制折线图时会严格按照数据的存储顺序依次连接点位,如果时间索引乱序,最后一个数据点的时间早于前面的点位,就会出现从晚时间点直接连回早时间点的横跨全图的直线。
除此之外还有两种次要触发可能:

  • 原始数据集的索引不是标准DatetimeIndex格式,切片时混入了2019年6-8月之外的异常数据
  • 单个站点的流量数据存在空值或者重复时间戳,导致绘图逻辑异常
解决方法

按以下步骤修改代码即可消除多余横线:

  • 先将原始数据集的索引转为标准DatetimeIndex并按时间排序
import pandas as pd
# 转换索引格式后排序
countData19_gdf.index = pd.to_datetime(countData19_gdf.index)
countData19_gdf.sort_index(inplace=True)
  • 替换原有夏季数据切片逻辑,显式过滤时间范围避免混入异常值
start = pd.to_datetime("2019-06-01")
end = pd.to_datetime("2019-08-31")
summersubset = countData19_gdf[(countData19_gdf.index >= start) & (countData19_gdf.index <= end)]
  • 循环绘制单站点数据时,先对站点数据排序、删除流量列的空值
for station in stations:
    # 新增排序、去空值逻辑
    station_data = summersubset[summersubset['address'] == station].sort_index().dropna(subset=['volume'])
    ax[cnt].plot(station_data['volume'], c='green', label='flow')
    # 后续的标题、坐标轴、刻度、图例等配置代码保持原有逻辑不变
    ax[cnt].title.set_text(station)
    ax[cnt].set_xlabel('Study Date')
    ...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 05:45:07