當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python Matplotlib.dates.AutoDateFormatter用法及代碼示例

Matplotlib是Python中令人驚歎的可視化庫,用於數組的二維圖。 Matplotlib是一個基於NumPy數組的多平台數據可視化庫,旨在與更廣泛的SciPy堆棧配合使用。

matplotlib.dates.AutoDateFormatter

matplotlib.dates.AutoDateFormatter類用於確定用於日期的最佳格式。最好與AutoDateLocator一起使用。它有一個字典,它映射刻度線的刻度和格式字符串。默認情況下,它如下所示:

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. / (MUSECONDS_PER_DAY):rcParams[‘date.autoformat.microsecond’],
}

該算法選擇該詞典中大於或等於當前比例的鍵,並將其用於格式化字符串。該字典也可以如下自定義:

locator = AutoDateLocator()
formatter = AutoDateFormatter(locator)

# only show hour and minute
formatter.scaled[1/(24.*60.)] = '%H:%M'

如果self.scaled中的任何值均不大於所返回的單位,則使用默認格式locator._get_unit()



用法: class matplotlib.dates.AutoDateFormatter(locator, tz=None, defaultfmt=’%Y-%m-%d’)

參數:

  1. locator:在確定日期時確定刻度位置。
  2. tz:它包含時區信息
  3. defaultfmt:如果沒有格式符合要求,則該格式將以years-months-days格式作為默認格式。

範例1:

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:

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()

輸出:




相關用法


注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 Matplotlib.dates.AutoDateFormatter class in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。