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

如何在Matplotlib中修改日期型X轴刻度的起始点(间隔3个月)

如何设置Matplotlib时间序列X轴的起始刻度(保持3个月间隔)?

我来帮你解决这个问题!你需要让X轴的3个月间隔刻度从数据的第一个月份(2016-08)开始,而非Matplotlib默认的起始点。这里有两种实用的实现方法:

方法一:设置X轴的起始范围(通用且简单)

直接将X轴的左边界设置为数据中的第一个日期,这样Matplotlib会自动调整刻度从该点开始,同时保留3个月的间隔。

修改后的完整代码:

import matplotlib.dates as mdates
import matplotlib.pyplot as plt
import pandas as pd

# 假设你的DataFrame是test,且'Date'已转为datetime格式
fig = plt.figure(figsize=(12,4))
ax = fig.add_subplot(1,1,1)
plt.plot('Date', 'Clients Growth', data=test, linewidth=2, color='steelblue')

# 设置3个月间隔的刻度定位器
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=3))
# 将X轴左边界设置为数据的第一个日期
ax.set_xlim(test['Date'].iloc[0], None)

plt.xticks(rotation=45, ha='right')
plt.show()

原理:通过set_xlim强制X轴从数据的第一个日期开始,Matplotlib会基于这个起始点生成3个月间隔的刻度,自然就会从2016-08开始,后续刻度为2016-11、2017-02等。

方法二:精确指定刻度的月份(针对性更强)

如果明确知道起始月份是8月,也可以直接给MonthLocator指定bymonth参数,限定只在8、11、2、5这些间隔3个月的月份显示刻度:

import matplotlib.dates as mdates
import matplotlib.pyplot as plt
import pandas as pd

fig = plt.figure(figsize=(12,4))
ax = fig.add_subplot(1,1,1)
plt.plot('Date', 'Clients Growth', data=test, linewidth=2, color='steelblue')

# 指定只在8、11、2、5月显示刻度,间隔3个月
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=3, bymonth=[8,11,2,5]))

plt.xticks(rotation=45, ha='right')
plt.show()

注意:这种方法适合固定起始月份的场景,如果数据的起始月份可能变化,方法一的通用性会更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:14:23