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


Python matplotlib AutoDateFormatter用法及代码示例


本文简要介绍 python 语言中 matplotlib.dates.AutoDateFormatter 的用法。

用法

class matplotlib.dates.AutoDateFormatter(locator, tz=None, defaultfmt='%Y-%m-%d', *, usetex=None)

基础: Formatter

Formatter 尝试找出最佳使用格式。与 AutoDateLocator 一起使用时最有用。

AutoDateFormatter 有一个 .scale 字典,用于映射刻度刻度(一个主要刻度之间的天数间隔)以格式化字符串;该字典默认为

self.scaled = {
    DAYS_PER_YEAR: rcParams['date.autoformatter.year'],
    DAYS_PER_MONTH: rcParams['date.autoformatter.month'],
    1: rcParams['date.autoformatter.day'],
    1 / HOURS_PER_DAY: rcParams['date.autoformatter.hour'],
    1 / MINUTES_PER_DAY: rcParams['date.autoformatter.minute'],
    1 / SEC_PER_DAY: rcParams['date.autoformatter.second'],
    1 / MUSECONDS_PER_DAY: rcParams['date.autoformatter.microsecond'],
}

格式化程序使用与字典中大于或等于当前比例的最低键对应的格式字符串。字典条目可以自定义:

locator = AutoDateLocator()
formatter = AutoDateFormatter(locator)
formatter.scaled[1/(24*60)] = '%M:%S' # only show min and sec

也可以使用自定义可调用对象来代替格式字符串。以下示例显示如何使用自定义格式函数从小数秒中去除尾随零并将日期添加到第一个刻度标签:

def my_format_function(x, pos=None):
    x = matplotlib.dates.num2date(x)
    if pos == 0:
        fmt = '%D %H:%M:%S.%f'
    else:
        fmt = '%H:%M:%S.%f'
    label = x.strftime(fmt)
    label = label.rstrip("0")
    label = label.rstrip(".")
    return label

formatter.scaled[1/(24*60)] = my_format_function

自动格式化日期标签。

参数
locator ticker.Locator

该轴正在使用的定位器。

tz str 或 tzinfo ,默认值:rcParams["timezone"](默认值:'UTC')

勾选时区。如果是字符串,则将 tz 传递给 dateutil.tz

defaultfmt str

如果 self.scaled 中的值都不大于 locator._get_unit() 返回的单位,则使用默认格式。

usetex 布尔值,默认值:rcParams["text.usetex"](默认值:False)

启用/禁用使用 TeX 的数学模式来呈现格式化程序的结果。如果 self.scaled 中的任何条目被设置为函数,则由自定义函数来启用或禁用 TeX 的数学模式本身。

相关用法


注:本文由纯净天空筛选整理自skytowner.com大神的英文原创作品 matplotlib.dates.AutoDateFormatter。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。