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()
输出
它将产生以下输出
广告