единицы
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 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 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 a converter
units.registry[datetime.date] = DateConverter()
-
class matplotlib.units.AxisInfo(majloc=None, minloc=None, majfmt=None, minfmt=None, label=None, default_limits=None) -
Базы:
objectинформация для поддержки стандартной подписи осей и подписи делений, а также стандартных пределов
majloc и minloc: TickLocators для основных и второстепенных делений majfmt и minfmt: TickFormatters для основных и второстепенных делений label: стандартная подпись оси default_limits: стандартный минимум и максимум оси, если данные отсутствуют. Если любой из вышеперечисленных элементов равен None, ось просто будет использовать стандартные значения
-
class matplotlib.units.ConversionInterface -
Базы:
objectМинимальный интерфейс для преобразователя, принимающего пользовательские экземпляры (или последовательности) и преобразующего их в значения, которые mpl может использовать
-
static axisinfo(unit, axis) -
возвращает экземпляр units.AxisInfo для оси с указанными единицами
-
static convert(obj, unit, axis) -
преобразует obj с использованием единиц для указанной оси. Если obj — последовательность, возвращает преобразованную последовательность. Выход должен быть последовательностью скаляров, которые могут быть использованы слоем массива numpy
-
static default_units(x, axis) -
возвращает стандартные единицы для оси x или None для заданной оси
-
static is_numlike(x) -
matplotlib datalim, автоматическое масштабирование, локейторы и т. д. работают со скалярами, которые представляют собой единицы, преобразованные в числа с плавающей точкой, учитывая текущие единицы. Преобразователь может передать эти числа с плавающей точкой или массивы из них, даже при установленных единицах. Производные интерфейсы преобразования могут выбрать передачу простых чисел без единиц через интерфейс преобразования, и это вспомогательная функция для них.
-
-
class matplotlib.units.Registry -
Базы:
dictрегистрирует типы с интерфейсом преобразования
-
get_converter(x) -
возвращает экземпляр интерфейса преобразователя для x или None
-
© 2012–2017 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/2.1.0/api/units_api.html