可以通过设置xlim或者设置日期范围来限制显示的日期区间,例如:
import matplotlib.pyplot as plt
import numpy as np
from datetime import datetime, timedelta
from matplotlib.dates import DateFormatter, WeekdayLocator
# 生成时间序列数据
dates = [datetime(2021, 1, 1) + timedelta(days=i) for i in range(50)]
values = np.random.rand(50)
fig, ax = plt.subplots()
ax.bar(dates, values, width=0.8)
# 设置日期格式
date_form = DateFormatter("%m-%d")
ax.xaxis.set_major_formatter(date_form)
# 设置x轴刻度间距
weekday_locator = WeekdayLocator(byweekday=0)
ax.xaxis.set_major_locator(weekday_locator)
# 设置日期显示范围
ax.set_xlim([datetime(2021, 1, 1), datetime(2021, 2, 1)])
plt.show()
通过设置ax.set_xlim([datetime(2021, 1, 1), datetime(2021, 2, 1)])限制了显示的日期范围为2021年1月1日到2021年2月1日。若将此代码注释掉或者删掉,则图形将会在最后一个日期之后仍然继续。