Python 中的 matplotlib.date .简明日期格式化程序类
原文:https://www.geeksforgeeks.org/matplotlib-date-简明日期格式器-python 中的类/
Matplotlib 是 Python 中一个惊人的可视化库,用于数组的 2D 图。Matplotlib 是一个多平台数据可视化库,构建在 NumPy 数组上,旨在与更广泛的 SciPy 堆栈一起工作。
matplot lib.dates.conciliate formatter-matplot lib.date-matplot lib.date .简明格式化程式
matplotlib.dates.ConciseDateFormatter
类用于计算日期的最佳格式,并使其尽可能紧凑但完整。这更常用于AutoDateLocator
。
语法:class matplotlib.date .简明日期格式化程序(定位器,tz =无,formats =无,offset_formats =无,zero_formats =无,show_offset =真)
参数:
- 定位器:该参数代表该轴使用的定位器。 tz: 它是一个可选参数,接受传递给 dates.date2num 的字符串。 格式:是 6 个字符串的可选列表。它用于格式化 6 个级别的刻度标签的字符串,如年、月、日、小时、分钟和秒。这些字符串的格式代码与 strftime 相同。其默认值为[ '%Y ',' %b ',' %d ',' %H:%M ',' %H:%M ',' %S.%f'] zero_formats: 是 6 个字符串的可选列表。它用于格式化任何给定刻度级别的“零”刻度标签的字符串。例如,如果大多数刻度是月份,2020 年 2 月 1 日左右的刻度将被标记为“1 月”,2020 年标记为“3 月”。其默认值为[",' %Y ',' %b ',' %b-%d ',' %H:%M ',' %H:%M']。 offset_formats: 是 6 个字符串的可选列表。它用于格式化应用于 x 轴右侧或 y 轴顶部“偏移”字符串的 6 个级别的字符串。当与刻度标签结合时,这应该完全指定日期。默认值为[",' %Y ',' %Y-%b ',' %Y-%b-%d ',' %Y-%b-%d ',' %Y-%b-%d ',' %Y-%b-%d %H:%M']。 show_offset:* 接受布尔值,决定是否显示 offset。默认情况下,它设置为“真”。
例 1:
import numpy as np
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
# dummy date
dummy_date = np.arange("2020-04-10",
"2020-05-14",
dtype ="datetime64")
random_x = np.random.rand(len(dummy_date))
figure, axes = plt.subplots()
axes.plot(dummy_date, random_x)
axes.xaxis.set(
major_locator = mdates.AutoDateLocator(minticks = 1,
maxticks = 5),
)
locator = mdates.AutoDateLocator(minticks = 15,
maxticks = 20)
formatter = mdates.ConciseDateFormatter(locator)
axes.xaxis.set_major_locator(locator)
axes.xaxis.set_major_formatter(formatter)
plt.show()
输出:
例 2:
import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
dummy_date = datetime.datetime(2020, 2, 1)
# random date generator
dates = np.array([dummy_date + datetime.timedelta(hours =(2 * i))
for i in range(732)])
date_length = len(dates)
np.random.seed(194567801)
y_axis = np.cumsum(np.random.randn(date_length))
lims = [(np.datetime64('2020-02'),
np.datetime64('2020-04')),
(np.datetime64('2020-02-03'),
np.datetime64('2020-02-15')),
(np.datetime64('2020-02-03 11:00'),
np.datetime64('2020-02-04 13:20'))]
figure, axes = plt.subplots(3, 1,
constrained_layout = True,
figsize =(6, 6))
for nn, ax in enumerate(axes):
locator = mdates.AutoDateLocator(minticks = 3, maxticks = 7)
formatter = mdates.ConciseDateFormatter(locator)
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(formatter)
ax.plot(dates, y_axis)
ax.set_xlim(lims[nn])
axes[0].set_title('Concise Date Formatter')
plt.show()
输出: