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


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

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

matplotlib.dates.ConciseDateFormatter

這個matplotlib.dates.ConciseDateFormatterclass用於確定用於日期的最佳格式,並使其盡可能緊湊但完整。這通常與AutoDateLocator

用法: class matplotlib.dates.ConciseDateFormatter(locator, tz=None, formats=None, offset_formats=None, zero_formats=None, show_offset=True)

參數:

  • locator:該參數表示該軸使用的定位器。
  • tz:它是一個可選參數,它接受傳遞給dates.date2num的字符串。
  • formats:它是6個字符串的可選列表。它用於格式化6個級別的刻度標簽的字符串,格式分別為年,月,日,小時,分鍾和秒。這些字符串的格式代碼與strftime相同。默認值為[‘%Y’,‘%b’,‘%d’,‘%H:%M’,‘%H:%M’,‘%S.%f’]
  • zero_formats:它是6個字符串的可選列表。它用於格式化滴答標簽的字符串(對於任何給定的滴答級別為“zero”)。例如,如果大多數刻度是幾個月,則在2020年2月1日前後的刻度將標記為“Jan” 2020 “March”。其默認值為[“,'%Y','%b','%b-%d','%H: %M','%H:%M']。
  • offset_formats:它是6個字符串的可選列表,用於格式化6個級別的字符串,這些字符串應用於x軸右側或y軸頂部的“offset”字符串。與打勾標簽結合使用時,應完全指定日期。默認值為[“,'%Y','%Y-%b','%Y-%b-%d','%Y-%b-%d','%Y-%b-% d%H:%M']。
  • show_offset:它接受一個布爾值,並決定是否顯示偏移量。默認情況下,它設置為True。

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

輸出:




相關用法


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