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

Matplotlib/mplfinance绘图日期格式设置与pandas时间筛选问题

OHLC K线图问题解决方案

限定读取指定时间范围的数据

原CSV是倒序存储的2000-2020年全量数据,不需要全部加载到内存,直接在数据读取阶段完成筛选和排序即可,替换原有读取代码为:

import pandas as pd
import mplfinance as mpf

file = r"C:\Users\Aryan\Desktop\myData.csv"
# 读取文件时直接解析timestamp列为日期格式
data = pd.read_csv(file, parse_dates=['timestamp'])
# 仅保留2019年1月-2020年1月区间的数据
data = data[(data['timestamp'] >= '2019-01-01') & (data['timestamp'] <= '2020-01-31')]
# 设置时间索引并按升序排列,解决原数据倒序导致的切片、绘图异常
data = data.set_index('timestamp').sort_index()

注意:不要在绘图阶段才做时间切片,未排序的倒序索引用字符串切片很容易取错数据范围。


调整X轴日期显示为带完整年份的格式

mplfinance支持通过datetime_format参数直接自定义X轴日期显示格式,不需要额外操作matplotlib底层轴对象,调整绘图代码如下:

mpf.plot(data, 
         type='candle', 
         figratio=(30,15),
         title='Some stock price',
         tight_layout=True,
         style = 'yahoo',
         mav=(20), 
         volume=True,
         # 指定日期格式为「月缩写 日, 4位年份」,匹配Jan 28, 2020的显示效果
         datetime_format='%b %d, %Y',
         # 可选:如果刻度标签重叠,可以加旋转参数调整显示角度
         xrotation=15
)

运行后X轴标签就会从原来的Jan 28, 00:00变成目标格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:01:03