Python绘制时间序列(日期+数值)图表异常 生成图形不符合预期
问题根因
- 你拆分
Gmt time字段后仅提取了日期部分用于绘图或作为索引,若原始数据为日内高频分时数据,同一日期会对应多条不同时间的观测值,绘图时同一日期的所有Close值会被映射到x轴的同一个坐标点,最终出现异常绘图结果。 - 仅用日期作为索引会产生大量重复索引值,进一步干扰pandas的绘图逻辑。
修复方案
- 直接转换完整的
Gmt time字段为datetime类型,不需要拆分日期和时间:
# 转换完整GMT时间为datetime类型,可根据实际时间字符串格式调整format参数 df['Gmt time'] = pd.to_datetime(df['Gmt time']) # 若默认转换失败可指定格式,比如常见的日月年时分格式参考:df['Gmt time'] = pd.to_datetime(df['Gmt time'], format='%d.%m.%Y %H:%M:%S')
- 将完整时间列设置为索引后排序再绘图:
df = df.set_index('Gmt time').sort_index() # 直接绘图即可得到正确的时间序列走势 df['Close'].plot()
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

