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,则坐标轴将简单地使用默认值。
- class matplotlib.units.ConversionInterface[源码]#
基类:
object转换器用于获取自定义数据类型(或序列)并将其转换为 Matplotlib 可用值的最小接口。