当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。