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