Matplotlib ŌĆō 日期处理以每 12 个月显示年刻度
为了使 Matplotlib 日期处理功能可以每 12 个月显示年刻度,我们可以按照以下步骤进行操作−
- 设置图形大小并调整子图之间和周围的填充。
- 使用 Pandas,Numpy 和 Matplotlib 日期创建 d,y,s,years,months 和 monthsFmt 并使用 yearsFmt 。
- 在 DateFormatter 中使用 “%B” 来显示完整的月份名称。
- 在 DateFormatter 中使用 “%Y” 来显示年份。
- 创建一个新的图形或激活现有的图形。
- 将 “ax” 添加到图形作为子图安排的一部分。
- 使用 plot() 方法绘制 “dts” 和 “s” 数据点。
- 设置次要或主要轴定位器和格式器。将 minor_locator 设置为 months ,以便每 12 个月显示年刻度。
- 要显示图形,请使用 show() 方法。
示例
import numpy as np
from matplotlib import pyplot as plt, dates as mdates
import pandas as pd
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
d = pd.date_range("2020-01-01", "2021-06-01", freq="7D")
y = np.cumsum(np.random.normal(size=len(d)))
s = pd.Series(y, index=d)
years = mdates.YearLocator()
months = mdates.MonthLocator()
monthsFmt = mdates.DateFormatter('%B')
yearsFmt = mdates.DateFormatter('\n%Y')
dts = s.index.to_pydatetime()
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(dts, s)
ax.xaxis.set_minor_locator(months)
ax.xaxis.set_minor_formatter(monthsFmt)
plt.setp(ax.xaxis.get_minorticklabels(), rotation=90)
ax.xaxis.set_major_locator(years)
ax.xaxis.set_major_formatter(yearsFmt)
plt.show()
输出
它将生成以下输出