📜  Python中的 Matplotlib.dates.DateFormatter 类(1)

📅  最后修改于: 2023-12-03 15:04:32.116000             🧑  作者: Mango

Python中的 Matplotlib.dates.DateFormatter 类

MatplotlibPython 中一个常用的绘图库,它支持各种类型的图表绘制。dates 模块是其专门用于处理日期时间数据的子模块。DateFormatter 类是 dates 模块中常用的一个类,它用于自定义日期格式化字符串。

使用方法
import matplotlib.dates as mdates


date_fmt = mdates.DateFormatter('%Y-%m-%d %H:%M:%S')

上述代码定义了一个 DateFormatter 类的实例对象 date_fmt,并定义了日期格式化字符串。这里的 %Y-%m-%d %H:%M:%S 表示日期时间格式:

  • %Y:四位数的年份
  • %m:两位数的月份(01~12)
  • %d:两位数的日期(01~31)
  • %H:24小时制小时数(00~23)
  • %M:分钟数(00~59)
  • %S:秒数(00~59)
示例
import matplotlib.pyplot as plt
import numpy as np
import datetime


date_fmt = mdates.DateFormatter('%Y-%m-%d %H:%M:%S')

x = np.array([datetime.datetime(2021, 1, 1),
              datetime.datetime(2021, 1, 2),
              datetime.datetime(2021, 1, 3),
              datetime.datetime(2021, 1, 4)])
y = np.array([1, 3, 2, 4])

fig, ax = plt.subplots()
ax.plot(x, y)
ax.xaxis.set_major_formatter(date_fmt)

plt.show()

上述代码定义了一个包含四个数据点的日期时间序列,然后在图表中绘制了该序列中的数据点,并使用 DateFormatter 对横坐标轴的日期格式进行了定制,结果如下所示:

matplotilb-dates-dateformatter.png

注意事项
  • DateFormatter 对象通过 set_major_formatter 方法应用于横坐标轴或纵坐标轴
  • DateFormatter 对象的格式化字符串需要按照 datetime 模块中的格式化规则,详见官方文档
  • DateFormatter 可以自动识别不同的日期格式,但是若要在自定义日期格式时获得更好的控制,请使用 %Y%m%d%H%M%S