Matplotlib – 日期操作,每 12 个月显示一次年份

要进行 matplotlib 日期操作,以便每 12 个月显示一次年份刻度,我们可以采取以下步骤 -

  • 设置图形大小并调整子图之间和周围的填充。

  • 使用 Pandas、Numpy 和 matplotlib 日期创建d、y、s、年、月、monthsFmt和yearsFmt 。

  • 在 DateFormatter 中使用“%B”来显示完整的月份名称。

  • 在 DateFormatter 中使用“%Y”来显示年份。

  • 创建新地物或激活现有地物。

  • 作为子图排列的一部分,在图中添加一个“斧头”。

  • 使用方法绘制“dts”和“s”数据点plot()。

  • 设置短轴或长轴定位器和格式化程序。将minor_locator设置为月份,以便每 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()

输出结果

它将产生以下输出

以上是 Matplotlib – 日期操作,每 12 个月显示一次年份 的全部内容, 来源链接: utcz.com/z/363111.html

回到顶部