matplotlib.units#

此处的类为在 Matplotlib 中使用自定义类提供了支持,例如那些不公开数组接口但知道如何将自身转换为数组的类。它还支持带有单位和单位转换的类。使用场景包括自定义对象的转换器(例如 datetime 对象列表),以及具有单位意识的对象。我们不假设任何特定的单位实现;相反,单位实现必须在 Registry 转换器字典中注册并提供一个 ConversionInterface。例如,这里有一个完整的实现,支持使用原生 datetime 对象进行绘图。

import matplotlib.units as units
import matplotlib.dates as dates
import matplotlib.ticker as ticker
import datetime

class DateConverter(units.ConversionInterface):

    @staticmethod
    def convert(value, unit, axis):
        "Convert a datetime value to a scalar or array."
        return dates.date2num(value)

    @staticmethod
    def axisinfo(unit, axis):
        "Return major and minor tick locators and formatters."
        if unit != 'date':
            return None
        majloc = dates.AutoDateLocator()
        majfmt = dates.AutoDateFormatter(majloc)
        return units.AxisInfo(majloc=majloc, majfmt=majfmt, label='date')

    @staticmethod
    def default_units(x, axis):
        "Return the default unit for x or None."
        return 'date'

# Finally we register our object type with the Matplotlib units registry.
units.registry[datetime.date] = DateConverter()
class matplotlib.units.AxisInfo(majloc=None, minloc=None, majfmt=None, minfmt=None, label=None, default_limits=None)[源码]#

基类: object

用于支持默认坐标轴标签、刻度标签和限制的信息。

此类的实例必须由 ConversionInterface.axisinfo 返回。

参数:
majloc, minlocLocator,可选

主刻度和次刻度的刻度定位器。

majfmt, minfmtFormatter,可选

主刻度和次刻度的刻度格式化器。

labelstr, 可选

默认坐标轴标签。

default_limits可选

如果尚未绘制任何数据,则为坐标轴的默认最小和最大限制。

备注

如果上述任何参数为 None,则坐标轴将简单地使用默认值。

exception matplotlib.units.ConversionError[源码]#

基类:TypeError

class matplotlib.units.ConversionInterface[源码]#

基类: object

转换器用于获取自定义数据类型(或序列)并将其转换为 Matplotlib 可用值的最小接口。

static axisinfo(unit, axis)[源码]#

返回具有指定单位的坐标轴的 AxisInfo。

static convert(obj, unit, axis)[源码]#

使用 unit 为指定的 axis 转换 obj。

如果 obj 是一个序列,则返回转换后的序列。输出必须是一个可供 numpy 数组层使用的标量序列。

static default_units(x, axis)[源码]#

返回 x 的默认单位,或为给定坐标轴返回 None。

class matplotlib.units.DecimalConverter[源码]#

基类:ConversionInterface

将 decimal.Decimal 数据转换为浮点数的转换器。

static convert(value, unit, axis)[源码]#

将 Decimals 转换为浮点数。

不使用 unit 和 axis 参数。

参数:
valuedecimal.Decimal 或可迭代对象

需要转换的 Decimal 或 Decimal 列表

class matplotlib.units.Registry[源码]#

基类:dict

将类型注册到转换接口。

get_converter(x)[源码]#

获取 x 的转换器接口实例,如果没有则返回 None。