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 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] -
Bases:
objectИнформация для поддержки стандартной маркировки осей, маркировки делений и пределов.
Экземпляр этого класса должен возвращаться методом
ConversionInterface.axisinfo.Параметры: - majloc, minlocLocator, необязательно
-
Определяющие точки для основных и второстепенных делений.
- majfmt, minfmtFormatter, необязательно
-
Форматтеры меток для основных и второстепенных делений.
- labelстрока, необязательно
-
Стандартная метка оси.
- default_limitsнеобязательно
-
Стандартные минимальные и максимальные пределы оси, если данные не были нанесены на график.
Примечания
Если какие-либо из вышеперечисленных значений
None, ось просто использует значение по умолчанию.
- исключение
matplotlib.units.ConversionError[source] -
Bases:
TypeError
- class
matplotlib.units.ConversionInterface[source] -
Bases:
objectМинимальный интерфейс преобразователя для преобразования пользовательских типов данных (или последовательностей) в значения, которые Matplotlib может использовать.
- статический
axisinfo(unit, axis)[source] -
Возвращает
AxisInfoдля оси со специфицированными единицами.
- статический
convert(obj, unit, axis)[source] -
Преобразовать obj, используя unit для указанной axis.
Если obj — последовательность, вернуть преобразованную последовательность. Выход должен быть последовательностью скаляров, которые могут использоваться слоем массива numpy.
- статический
default_units(x, axis)[source] -
Возвращает стандартные единицы для x или
Noneдля данной оси.
- статический
is_numlike(x)[source] -
Функции Matplotlib datalim, автоматическое масштабирование, локаторы и т.д. работают со скалярами, которые являются единицами, преобразованными в числа с плавающей точкой, учитывая текущие единицы. Преобразователю могут быть переданы эти числа с плавающей точкой или массивы чисел с плавающей точкой, даже когда единицы установлены.
- статический
- class
matplotlib.units.DecimalConverter[source] -
Bases:
matplotlib.units.ConversionInterfaceПреобразователь для данных decimal.Decimal в числа с плавающей точкой.
- статический
axisinfo(unit, axis)[source] -
Возвращает
AxisInfoдля оси со специфицированными единицами.
- статический
convert(value, unit, axis)[source] -
Преобразовать Decimal в числа с плавающей точкой.
Аргументы unit и axis не используются.
Параметры: - valuedecimal.Decimal или итерируемый объект
-
Decimal или список Decimal, который нужно преобразовать
- статический
default_units(x, axis)[source] -
Возвращает стандартные единицы для x или
Noneдля данной оси.
- статический
- class
matplotlib.units.Registry[source] -
Bases:
dictРегистрация типов с интерфейсом преобразования.
-
get_converter(x)[source] -
Возвращает экземпляр интерфейса преобразования для x или None.
-
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.4.3/api/units_api.html