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)[source]#

基类: object

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

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

参数:
majloc, minlocLocator, 可选

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

majfmt, minfmtFormatter, 可选

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

labelstr, 可选

默认坐标轴标签。

default_limits可选

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

备注

如果以上任何值为 None,则坐标轴将直接使用默认值。

exception matplotlib.units.ConversionError[source]#

基类:TypeError

class matplotlib.units.ConversionInterface[source]#

基类: object

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

static axisinfo(unit, axis)[source]#

返回指定单位的坐标轴的 AxisInfo

static convert(obj, unit, axis)[source]#

使用 unit 为指定的 axis 转换 obj

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

static default_units(x, axis)[source]#

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

class matplotlib.units.DecimalConverter[source]#

基类:ConversionInterface

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

static convert(value, unit, axis)[source]#

将 Decimals 转换为浮点数。

unitaxis 参数未使用。

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

需要转换的 Decimal 或 Decimal 列表

class matplotlib.units.Registry[source]#

基类:dict

注册具有转换接口的类型。

get_converter(x)[source]#

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