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

Matplotlib设置X轴每2小时刻度并与数据对齐的实现方法

解决Matplotlib X轴每2小时刻度与数据对齐的问题

要实现X轴每2小时显示一次刻度且与你的数据时间对齐,关键是让刻度的分钟数和数据起始时间的分钟数保持一致,同时维持2小时的间隔。

你之前的问题出在单独使用MinuteLocator(interval=120)时,刻度会从整点开始生成(比如12:00、14:00),和你的12:37、14:37这类带偏移的时间点不匹配;而错误使用byminute参数时没配合正确的interval,导致刻度变成每小时一次。

正确的做法是同时指定interval=120(2小时)和byminute参数为数据起始时间的分钟数(这里是37),这样定位器会在每2小时的周期里,只保留分钟数为37的时间点作为刻度,完美匹配你的数据时间。

修改后的完整代码:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime, timedelta

start_time = datetime(2025, 9,15, 12, 37)
t = [start_time, start_time + timedelta(hours=2), start_time + timedelta(hours=4)]
values = [4,2,7]
plt.plot(t,values)
ax = plt.gca()
# 设置每2小时一次,且只保留分钟为37的刻度
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=120, byminute=[37]))
# 可选:设置刻度格式,让时间显示更清晰
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
plt.grid(True)
plt.show()

运行这段代码后,X轴刻度会显示12:37、14:37、16:37,完全和你的数据点对齐,同时保持每2小时的间隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 08:42:36