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

如何使用Python的matplotlib在K线图x轴仅显示小时和分钟时间格式

解决K线图X轴仅显示时分格式的问题

下面是修复后可直接运行的代码:

import pandas as pd
import numpy as np
import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import date2num
import matplotlib.dates as mpl_dates
from mplfinance.original_flavor import candlestick_ohlc

# 可批量适配你的输入列表格式,此处以单条测试数据为例
input_list = ['17:00',355.750,567.05,147.00,146.99]
# 仅解析时分时默认会补全1900-01-01的日期,统一固定日期避免后续显示干扰
time_val = date2num(datetime.datetime.strptime(input_list[0], "%H:%M"))
data = np.array([time_val, input_list[1], input_list[2], input_list[3], input_list[4]])
data = data.reshape(1,5)
data = pd.DataFrame(data, columns =['Date', 'High', 'Low', 'Open', 'Close'])
ohlc = data.loc[:, ['Date', 'Open', 'High', 'Low', 'Close']]

fig, ax = plt.subplots()
candlestick_ohlc(ax, ohlc.values, width=0.005, colorup='green', colordown='red', alpha=0.8)

# 核心修改1:设置时分格式渲染规则
date_format = mpl_dates.DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(date_format)
# 核心修改2:指定X轴刻度定位规则,可根据你的数据时间间隔调整interval参数
# 若为小时级数据可替换为 mpl_dates.HourLocator(interval=1)
ax.xaxis.set_major_locator(mpl_dates.MinuteLocator(interval=30))

# 单条数据场景可手动限制X轴范围,避免显示多余的无关刻度
ax.set_xlim(time_val - 2/24, time_val + 2/24)

fig.autofmt_xdate()
fig.tight_layout()
plt.show()

修改说明

  • 解决了默认日期干扰问题:仅传入时分做时间解析时,datetime会默认补全1900-01-01的日期,未限制X轴范围时自动生成的刻度可能附带日期信息,手动限制范围+指定定位器后仅会显示时分
  • 新增X轴刻度定位规则:可根据实际数据的时间间隔调整interval参数,比如15分钟粒度的数据设置interval=15即可
  • 调整K线宽度适配:原代码0.01的宽度对应约14.4分钟,可根据数据间隔自行调整数值,避免K线过宽或过窄

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:15:04