Python 中的 matplotlib.date.autodatefformatter 类
原文:https://www.geesforgeks.org/matplotlib-date-autodatefformatter-python 中的类/
Matplotlib 是 Python 中一个惊人的可视化库,用于数组的 2D 图。Matplotlib 是一个多平台数据可视化库,构建在 NumPy 数组上,旨在与更广泛的 SciPy 堆栈一起工作。
matplot lib.date.autodateformatter
matplotlib.date.autodate formatter 类用于计算日期的最佳格式。这最好与自动日期定位器一起使用。它有一个映射刻度和格式字符串的字典。默认情况下,它如下所示:
self.scaled = { DAYS_PER_YEAR:rcParams[' date.AutoFormat.YEAR '], DAYS_PER_MONTH:rcParams[' date.AutoFormat.MONTH '], 1.0:rcParams[' date.AutoFormat.day '], 1。/HOURS_PER_DAY:rcParams[' date.AutoFormat.hour '], 1。/(MINUTES_PER_DAY):rcParams[' date.AutoFormat.MINUTE '], 1。/(SEC_PER_DAY):rcParams[' date.AutoFormat.second '], 1。/(musseconds_PER_DAY):rcParams[' date.AutoFormat .微秒'], }
该字典中大于或等于当前比例的键由该算法选取,并用于格式化字符串。本词典也可以如下定制:
locator = AutoDateLocator()
formatter = AutoDateFormatter(locator)
# only show hour and minute
formatter.scaled[1/(24.*60.)] = '%H:%M'
如果 self.scaled 中的值不大于定位器返回的单位,则使用默认格式。_get_unit()。
语法:class matplotlib.date.autodatefformatter(定位器,tz=None,defaultfmt='%Y-%m-%d ')
参数:
- 定位器:绘制日期时确定刻度位置。
- tz: 保存时区信息
- defaultfmt: 如果没有格式匹配=ches 要求,该格式将作为年-月-日格式的默认值。
例 1:
蟒蛇 3
import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import AutoDateLocator, AutoDateFormatter, date2num
# make my own data:
date = '2020-02-23'
low = 10
# how to format dates:
date_datetime = datetime.datetime.strptime(date, '% Y-% m-% d')
int_date = date2num( date_datetime)
# create plots:
figure, axes = plt.subplots()
# plot data:
axes.bar(int_date, low, label ="", color ="green")
# format date
locator = AutoDateLocator()
axes.xaxis.set_major_locator(locator)
axes.xaxis.set_major_formatter( AutoDateFormatter(locator) )
# apply autoformatter for displaying of dates
min_date = date2num( datetime.datetime.strptime('2020-02-16', '% Y-% m-% d') )
max_date = date2num( datetime.datetime.strptime('2020-02-28', '% Y-% m-% d') )
axes.set_xlim([min_date, max_date])
figure.autofmt_xdate()
# show plot:
plt.show()
输出:
例 2:
蟒蛇 3
import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# generate some random data for
# approx 5 yrs
random_data = [float(random.randint(1487517521,
14213254713))
for_in range(1000)]
# convert the epoch format to
# matplotlib date format
mpl_data = mdates.epoch2num(random_data)
# plotting the graph
fig, axes = plt.subplots(1, 1)
axes.hist(mpl_data, bins = 51, color ='green')
locator = mdates.AutoDateLocator()
axes.xaxis.set_major_locator(locator)
axes.xaxis.set_major_formatter(mdates.AutoDateFormatter(locator))
plt.show()
输出: