matplotlib.ticker
Размещение и форматирование делений
Этот модуль содержит классы для настройки размещения и форматирования делений. В нём представлены универсальные локаторы и форматтеры делений, а также специализированные для конкретных предметных областей варианты.
Хотя локаторы ничего не знают о главных и вспомогательных делениях, класс Axis использует их для поддержки размещения и форматирования главных и вспомогательных делений.
Размещение делений
Класс Locator — базовый класс для всех локаторов делений. Локаторы выполняют автоматическое масштабирование границ области просмотра на основе границ данных и выбирают положения делений. Полезный полуавтоматический локатор делений — MultipleLocator. Он инициализируется базовым значением, например 10, и выбирает границы осей и деления, кратные этому значению.
Определённые здесь подклассы Locator:
| |
Находит не более заданного числа интервалов, размещая деления в удобных положениях. | |
Равномерно размещает деления от минимального до максимального значения. | |
Размещает деления по логарифмической шкале от минимального до максимального значения. | |
Деления и диапазон кратны базовому значению — целому или вещественному числу. | |
Положения делений заданы фиксированными значениями. | |
Локатор для графиков индексов (например, где | |
Без делений. | |
Локатор для нормализации symlog; работает как | |
Локатор для нормализации asinh, который старается размещать деления примерно равномерно. | |
Локатор для логит-масштабирования. | |
Локатор вспомогательных делений для линейной оси с равномерно расположенными главными делениями. Он делит интервал между главными делениями на заданное число вспомогательных интервалов, по умолчанию — на 4 или 5 в зависимости от интервала между главными делениями. |
Для размещения делений на датах предусмотрено несколько специализированных локаторов — см. модуль dates.
Можно определить собственный локатор, унаследовав его от Locator. Необходимо переопределить метод __call__, возвращающий последовательность положений, и, вероятно, потребуется переопределить метод autoscale, чтобы установить границы области просмотра на основе границ данных.
Чтобы переопределить локатор по умолчанию, используйте один из перечисленных выше локаторов или собственный и передайте его экземпляру оси x или y. Для этого предназначены следующие методы:
ax.xaxis.set_major_locator(xmajor_locator) ax.xaxis.set_minor_locator(xminor_locator) ax.yaxis.set_major_locator(ymajor_locator) ax.yaxis.set_minor_locator(yminor_locator)
По умолчанию для вспомогательных делений используется NullLocator, то есть вспомогательные деления изначально не отображаются.
Примечание
Экземпляры Locator нельзя использовать более чем с одним Axis или Axes. Поэтому вместо следующего:
locator = MultipleLocator(5) ax.xaxis.set_major_locator(locator) ax2.xaxis.set_major_locator(locator)
сделайте так:
ax.xaxis.set_major_locator(MultipleLocator(5)) ax2.xaxis.set_major_locator(MultipleLocator(5))
Форматирование делений
Форматирование делений управляется классами, производными от Formatter. Форматтер обрабатывает значение одного деления и возвращает строку для оси.
Без подписей делений. | |
Задаёт строки подписей вручную. | |
Задаёт подписи с помощью пользовательской функции. | |
Использует строковый метод | |
Использует строку форматирования старого стиля sprintf. | |
Форматтер по умолчанию для скалярных значений: автоматически выбирает строку форматирования. | |
Форматтер для логарифмических осей. | |
Форматирует значения логарифмической оси с помощью | |
Форматирует значения логарифмической оси с помощью | |
Форматирует значения логарифмической оси в научной нотации. | |
Форматтер вероятностей. | |
Форматирует подписи в инженерной нотации. | |
Форматирует подписи в виде процентов. |
Можно создать собственный форматтер на основе базового класса Formatter, просто переопределив метод __call__. Класс форматтера имеет доступ к границам области просмотра и данным оси.
Чтобы управлять форматами подписей главных и вспомогательных делений, используйте один из следующих методов:
ax.xaxis.set_major_formatter(xmajor_formatter) ax.xaxis.set_minor_formatter(xminor_formatter) ax.yaxis.set_major_formatter(ymajor_formatter) ax.yaxis.set_minor_formatter(yminor_formatter)
Помимо экземпляра Formatter, методы set_major_formatter и set_minor_formatter также принимают str или функцию. Входное значение str будет автоматически заменено на сгенерированный StrMethodFormatter с входным значением str. Если передана функция, будет создан и использован FuncFormatter с этой функцией.
Пример настройки главных и вспомогательных делений см. в разделе Главные и вспомогательные деления. Дополнительные сведения и примеры использования локаторов и форматтеров дат см. в модуле matplotlib.dates.
- classmatplotlib.ticker.AsinhLocator(linear_width, numticks=11, symthresh=0.2, base=10, subs=None)[исходный код]
-
Базовые классы:
LocatorРазмещает деления на шкале обратного гиперболического синуса с равными интервалами.
Обычно используется с классом
AsinhScale.Примечание
Этот API является предварительным и может быть пересмотрен в будущем с учётом первых отзывов пользователей.
- Параметры:
-
- linear_widthfloat
-
Параметр масштаба, определяющий протяжённость квазилинейной области.
- numticksint, по умолчанию: 11
-
Приблизительное число главных делений, помещающихся вдоль всей оси
- symthreshfloat, по умолчанию: 0.2
-
Дробный порог: если данные охватывают диапазон, приблизительно симметричный относительно нуля, и этот порог не превышен, деления будут строго симметричны.
- baseint, по умолчанию: 10
-
Основание системы счисления, используемое при округлении положений делений на логарифмической шкале. Если оно меньше единицы, округление выполняется до ближайшего целого кратного степеней десяти.
- substuple, по умолчанию: None
-
Кратные основания системы счисления, обычно используемые для вспомогательных делений, например (2, 5) при base=10.
- set_params(numticks=None, symthresh=None, base=None, subs=None)[исходный код]
-
Задаёт параметры этого локатора.
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения размещённых делений с учётом vmin и vmax.
Примечание
Чтобы получить положения делений, автоматически заданные значениями vmin и vmax для связанного
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- classmatplotlib.ticker.AutoLocator[исходный код]
-
Базовые классы:
MaxNLocatorРазмещает равномерно распределённые деления, автоматически выбирая размер шага и максимальное количество делений.
Это подкласс
MaxNLocatorс параметрами nbins = 'auto' и steps = [1, 2, 2.5, 5, 10].Чтобы узнать значения непубличных параметров, ознакомьтесь со значениями по умолчанию для
MaxNLocator.
- classmatplotlib.ticker.AutoMinorLocator(n=None)[исходный код]
-
Базовые классы:
LocatorРазмещает равномерно распределённые малые деления, автоматически выбирая размер шага и максимальное количество делений.
Для оси должна использоваться линейная шкала, а основные деления должны быть расположены равномерно.
- Параметры:
-
-
nint или 'auto', по умолчанию:
rcParams["xtick.minor.ndivs"](по умолчанию:'auto') илиrcParams["ytick.minor.ndivs"](по умолчанию:'auto') -
Количество подразделений интервала между основными делениями; например, n=2 разместит одно малое деление посередине между основными делениями.
Если n равно 'auto', ему будет присвоено значение 4 или 5: если расстояние между основными делениями равно 1, 2.5, 5 или 10, его можно точно разделить на 5 равных подынтервалов длиной, кратной 0.05; в противном случае оно делится на 4 подынтервала.
-
nint или 'auto', по умолчанию:
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения найденных делений для заданных vmin и vmax.
Примечание
Чтобы получить положения делений со значениями vmin и vmax, автоматически заданными для соответствующей
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- classmatplotlib.ticker.EngFormatter(unit='', places=None, sep=' ', *, usetex=None, useMathText=None, useOffset=False)[исходный код]
-
Базовые классы:
ScalarFormatterФорматирует значения оси с помощью инженерных приставок для представления степеней 1000 и указанной единицы измерения, например 10 MHz вместо 1e7.
- Параметры:
-
- unitstr, по умолчанию: ""
-
Символ единицы измерения, подходящий для использования с односимвольными обозначениями степеней 1000. Например, 'Hz' или 'm'.
- placesint, по умолчанию: None
-
Точность отображения числа, заданная количеством цифр после десятичной точки (перед десятичной точкой будет от одной до трёх цифр). Если значение равно None, используется формат числа с плавающей точкой '%g', который отображает до 6 значащих цифр; таким образом, эквивалентное значение places варьируется от 0 до 5 включительно.
- sepstr, по умолчанию: " "
-
Разделитель между значением и приставкой/единицей измерения. Например, получится '3.14 mV', если
sepравно " " (по умолчанию), и '3.14mV', еслиsepравно "". Помимо поведения по умолчанию, могут быть полезны следующие варианты:-
sep="", чтобы присоединить приставку/единицу непосредственно к значению; -
sep="\N{THIN SPACE}"(U+2009); -
sep="\N{NARROW NO-BREAK SPACE}"(U+202F); -
sep="\N{NO-BREAK SPACE}"(U+00A0).
-
-
usetexbool, по умолчанию:
rcParams["text.usetex"](по умолчанию:False) -
Включает или отключает использование математического режима TeX для отображения чисел форматировщиком.
-
useMathTextbool, по умолчанию:
rcParams["axes.formatter.use_mathtext"](по умолчанию:False) -
Включает или отключает использование mathtext для отображения чисел форматировщиком.
- useOffsetbool или float, по умолчанию: False
-
Определяет, использовать ли запись со смещением и приставками, основанными на \(10^{3*N}\). Эта возможность позволяет отображать возле оси смещение со стандартной приставкой СИ для порядка величины. Смещение вычисляется аналогично тому, как его вычисляет внутри себя
ScalarFormatter, однако здесь гарантируется, что будет получено смещение, при котором подписи делений будут содержать более 3 цифр. См. такжеset_useOffset.Добавлено в версии 3.10.
- ENG_PREFIXES={-30: 'q', -27: 'r', -24: 'y', -21: 'z', -18: 'a', -15: 'f', -12: 'p', -9: 'n', -6: 'µ', -3: 'm', 0: '', 3: 'k', 6: 'M', 9: 'G', 12: 'T', 15: 'P', 18: 'E', 21: 'Z', 24: 'Y', 27: 'R', 30: 'Q'}
- format_data(value)[исходный код]
-
Форматирует число в инженерной нотации, добавляя букву, обозначающую степень 1000 исходного числа. Примеры:
>>> format_data(0) # for self.places = 0 '0'
>>> format_data(1000000) # for self.places = 1 '1.0 M'
>>> format_data(-1e-6) # for self.places = 2 '-1.00 µ'
- format_eng(num)[исходный код]
-
Псевдоним EngFormatter.format_data
- get_offset()[исходный код]
-
Возвращает научную нотацию и смещение.
- set_locs(locs)[исходный код]
-
Задаёт положения делений.
Этот метод вызывается перед вычислением подписей делений, поскольку некоторым форматировщикам для этого необходимо знать положения всех делений.
- classmatplotlib.ticker.FixedFormatter(seq)[исходный код]
-
Базовые классы:
FormatterВозвращает фиксированные строки для подписей делений, основываясь только на положении, а не на значении.
Примечание
FixedFormatterследует использовать только вместе сFixedLocator. В противном случае подписи могут оказаться в неожиданных местах.Задаёт последовательность строк seq, которые будут использоваться для подписей.
- get_offset()[исходный код]
- set_offset_string(ofs)[исходный код]
- classmatplotlib.ticker.FixedLocator(locs, nbins=None)[исходный код]
-
Базовые классы:
LocatorРазмещает деления в заданных фиксированных точках.
Если nbins равно None, деления размещаются во всех точках. В противном случае массив locs с возможными положениями прореживается, чтобы количество делений не превышало \(\leq nbins + 1\). При прореживании включается точка с наименьшим абсолютным значением; например, если среди возможных точек есть ноль, он будет включён в выбранные деления.
- set_params(nbins=None)[исходный код]
-
Задаёт параметры этого локатора.
- tick_values(vmin, vmax)[исходный код]
-
Возвращает положения делений.
Примечание
Поскольку значения фиксированы, в этом методе vmin и vmax не используются.
- classmatplotlib.ticker.FormatStrFormatter(fmt)[исходный код]
-
Базовые классы:
FormatterИспользует строку форматирования в старом стиле (оператор «%») для форматирования делений.
Строка форматирования должна содержать один спецификатор переменной формата (%). Он будет применён к значению деления (а не к его позиции).
Для отрицательных числовых значений (например, -1) будет использоваться дефис, а не знак минуса Unicode; чтобы получить знак минуса Unicode, используйте mathtext, заключив спецификатор формата в $ (например, "$%g$").
- classmatplotlib.ticker.Formatter[исходный код]
-
Базовые классы:
TickHelperСоздаёт строку на основе значения и положения деления.
- staticfix_minus(s)[исходный код]
-
Некоторым классам может потребоваться заменить дефис на знак минуса — соответствующий символ Unicode (U+2212) — для соблюдения типографских правил. Этот вспомогательный метод выполняет такую замену, если она включена через
rcParams["axes.unicode_minus"](по умолчанию:True).
- format_data(value)[исходный код]
-
Возвращает полное строковое представление значения, не указывая положение.
- format_data_short(value)[исходный код]
-
Возвращает краткое строковое представление значения деления.
По умолчанию возвращает длинное представление значения, не зависящее от положения.
- format_ticks(values)[исходный код]
-
Возвращает подписи всех делений за один вызов.
- get_offset()[исходный код]
- locs=[]
- set_locs(locs)[исходный код]
-
Задаёт положения делений.
Этот метод вызывается перед вычислением подписей делений, поскольку некоторым форматтерам для этого необходимо знать положения всех делений.
- classmatplotlib.ticker.FuncFormatter(func)[исходный код]
-
Базовые классы:
FormatterИспользует пользовательскую функцию для форматирования.
Функция должна принимать два аргумента (значение деления
xи его положениеpos) и возвращать строку с соответствующей подписью деления.- get_offset()[исходный код]
- set_offset_string(ofs)[исходный код]
- classmatplotlib.ticker.IndexLocator(base, offset)[исходный код]
-
Базовые классы:
LocatorРазмещает деления на каждой n-й нанесённой точке.
IndexLocator предполагает построение графика по индексам, то есть деления размещаются в целых точках диапазона от 0 до len(data) включительно.
Размещает деления через каждые base точек данных, начиная с offset.
- set_params(base=None, offset=None)[исходный код]
-
Задаёт параметры этого локатора
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения размещённых делений для заданных vmin и vmax.
Примечание
Чтобы получить положения делений, автоматически задав значения vmin и vmax для связанного
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- classmatplotlib.ticker.LinearLocator(numticks=None, presets=None)[исходный код]
-
Базовые классы:
LocatorРазмещает деления через равные интервалы.
При первом вызове эта функция попытается задать число делений так, чтобы получить удобное разбиение. После этого число делений будет фиксированным, чтобы интерактивная навигация была удобной.
- Параметры:
-
- numticksцелое число или None, по умолчанию None
-
Число делений. Если значение равно None, numticks = 11.
- presetsсловарь или None, по умолчанию: None
-
Словарь, сопоставляющий
(vmin, vmax)массиву положений. Переопределяет numticks, если для текущего(vmin, vmax)имеется соответствующая запись.
- propertynumticks
- set_params(numticks=None, presets=None)[исходный код]
-
Задаёт параметры этого локатора.
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения размещённых делений для заданных vmin и vmax.
Примечание
Чтобы получить положения делений, автоматически задав значения vmin и vmax для связанного
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- view_limits(vmin, vmax)[исходный код]
-
Пытается разумно выбрать пределы отображения.
- classmatplotlib.ticker.Locator[исходный код]
-
Базовые классы:
TickHelperОпределяет расположение делений.
Обратите внимание: один и тот же локатор не следует использовать для нескольких
Axis, поскольку локатор хранит ссылки на данные оси и пределы области просмотра.- MAXTICKS=1000
- nonsingular(v0, v1)[исходный код]
-
При необходимости корректирует диапазон, чтобы избежать вырожденных случаев.
Этот метод вызывается во время автоматического масштабирования;
(v0, v1)задаются пределами данных на Axes, если Axes содержит данные, или(-inf, +inf), если данных нет.- Если
v0 == v1(с возможной небольшой погрешностью округления с плавающей точкой), этот метод возвращает расширенный интервал вокруг этого значения. - Если
(v0, v1) == (-inf, +inf), этот метод возвращает подходящие значения пределов области просмотра по умолчанию. - В противном случае
(v0, v1)возвращается без изменений.
- Если
- raise_if_exceeds(locs)[исходный код]
-
Записывает сообщение с уровнем WARNING, если длина locs превышает
Locator.MAXTICKS.Этот метод предназначен для вызова непосредственно перед возвратом locs из
__call__, чтобы уведомить пользователей, если их локатор возвращает огромное число делений, из-за чего Matplotlib может исчерпать память.«Странное» название этого метода сохранилось с тех времён, когда он вызывал исключение вместо записи сообщения в журнал.
- set_params(**kwargs)[исходный код]
-
Ничего не делает и выдаёт предупреждение. Этот метод вызывается для любого класса локатора, не поддерживающего функцию set_params().
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения найденных делений для заданных vmin и vmax.
Примечание
Чтобы получить расположение делений со значениями vmin и vmax, автоматически определёнными для соответствующего
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- view_limits(vmin, vmax)[исходный код]
-
Выбирает масштаб для диапазона от vmin до vmax.
Подклассам следует переопределить этот метод, чтобы изменить поведение локатора.
- classmatplotlib.ticker.LogFormatter(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[исходный код]
-
Базовые классы:
FormatterБазовый класс для форматирования делений на логарифмической или симметричной логарифмической шкале.
Его можно создать напрямую или использовать как базовый класс.
- Параметры:
-
- baseчисло с плавающей точкой, по умолчанию: 10.
-
Основание логарифма, используемое во всех вычислениях.
- labelOnlyBaseлогическое значение, по умолчанию: False
-
Если True, подписи ставятся только у делений, соответствующих целым степеням основания. Обычно True для основных делений и False для вспомогательных.
- minor_thresholds(подмножество, все), по умолчанию: (1, 0.4)
-
Если labelOnlyBase равно False, эти два числа определяют, как подписывать деления, не соответствующие целым степеням основания; обычно это вспомогательные деления. Управляющий параметр — логарифм диапазона данных оси. В типичном случае, когда основание равно 10, это количество декад, охватываемых осью, поэтому обозначим его как 'numdec'. Если
numdec <= all, будут подписаны все вспомогательные деления. Еслиall < numdec <= subset, будут подписаны только некоторые вспомогательные деления, чтобы избежать нагромождения подписей. Еслиnumdec > subset, вспомогательные деления подписаны не будут. - linthreshNone или число с плавающей точкой, по умолчанию: None
-
Если используется симметричная логарифмическая шкала, здесь необходимо задать её параметр
linthresh.
Примечания
Для включения логики выбора подмножества, управляемой параметром
minor_thresholds, необходимо вызвать методset_locs.В некоторых случаях, например при использовании цветовой шкалы, различия между основными и вспомогательными делениями нет; расположение делений может задаваться вручную или локатором, который размещает деления на целых степенях основания и в промежуточных точках. В этом случае отключите логику minor_thresholds с помощью
minor_thresholds=(np.inf, np.inf), чтобы подписывались все деления.Чтобы отключить подписи вспомогательных делений, когда 'labelOnlyBase' равно False, используйте
minor_thresholds=(0, 0). Это значение по умолчанию для стиля "classic".Примеры
Чтобы подписать часть вспомогательных делений, если пределы области просмотра охватывают не более 2 декад, и все деления при увеличении до 0,5 декады или меньше, используйте
minor_thresholds=(2, 0.5).Чтобы подписать все вспомогательные деления, если пределы области просмотра охватывают не более 1,5 декады, используйте
minor_thresholds=(1.5, 1.5).- format_data(value)[исходный код]
-
Возвращает полное строковое представление значения, положение которого не задано.
- format_data_short(value)[исходный код]
-
Возвращает краткое строковое представление значения деления.
По умолчанию возвращает длинное представление, не зависящее от положения.
- set_base(base)[исходный код]
-
Изменяет base, используемое для подписей.
Предупреждение
Всегда должно совпадать с основанием, используемым в
LogLocator
- set_label_minor(labelOnlyBase)[исходный код]
-
Включает или отключает подписи вспомогательных делений.
- Параметры:
-
- labelOnlyBaseлогическое значение
-
Если True, подписи ставятся только у делений, соответствующих целым степеням основания.
- set_locs(locs=None)[исходный код]
-
Использует пределы области просмотра оси, чтобы определить, какие деления подписывать.
В текущем алгоритме параметр locs игнорируется.
- classmatplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[исходный код]
-
Базовые классы:
LogFormatterФорматирует значения для логарифмической оси с помощью
exponent = log_base(value).
- classmatplotlib.ticker.LogFormatterMathtext(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[исходный код]
-
Базовые классы:
LogFormatterФорматирует значения для логарифмической оси с помощью
exponent = log_base(value).
- classmatplotlib.ticker.LogFormatterSciNotation(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[исходный код]
-
Базовые классы:
LogFormatterMathtextФорматирует значения в научной нотации на логарифмической оси.
- classmatplotlib.ticker.LogLocator(base=10.0, subs=(1.0,), *, numticks=None)[исходный код]
-
Базовые классы:
LocatorРазмещает деления с логарифмическим шагом.
Размещает деления в точках
subs[j] * base**i.- Параметры:
-
- basefloat, по умолчанию: 10.0
-
Основание используемого логарифма: основные деления размещаются в точках
base**n, гдеn— целое число. - subsNone или {'auto', 'all'} или последовательность float, по умолчанию: (1.0,)
-
Задает множители целых степеней основания, в которых следует размещать деления. Значение по умолчанию
(1.0, )размещает деления только в целых степенях основания. Допустимые строковые значения:'auto'и'all'. В обоих случаях используется алгоритм, основанный на границах отображения оси, который определяет, следует ли размещать деления между целыми степенями основания и каким образом: -'auto': деления размещаются только между целыми степенями. -'all': деления размещаются между целыми степенями и в самих целых степенях. -None: эквивалентно'auto'. - numticksNone или int, по умолчанию: None
-
Максимальное количество делений на заданной оси. Значение по умолчанию
Noneпозволяет интеллектуально выбрать число делений, если этот Locator уже назначен оси с помощьюget_tick_space; в противном случае используется значение 9.
- nonsingular(vmin, vmax)[исходный код]
-
При необходимости корректирует диапазон, чтобы избежать сингулярностей.
Этот метод вызывается при автоматическом масштабировании.
(v0, v1)устанавливается в пределы данных на Axes, если Axes содержит данные, или в(-inf, +inf)в противном случае.- Если
v0 == v1(с возможной небольшой погрешностью вычислений с плавающей точкой), метод возвращает расширенный интервал вокруг этого значения. - Если
(v0, v1) == (-inf, +inf), метод возвращает подходящие пределы отображения по умолчанию. - В противном случае
(v0, v1)возвращается без изменений.
- Если
- set_params(base=None, subs=None, *, numticks=None)[исходный код]
-
Задает параметры этого локатора.
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения расположенных делений для заданных vmin и vmax.
Примечание
Чтобы получить расположение делений с автоматически заданными значениями vmin и vmax для связанного
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- view_limits(vmin, vmax)[исходный код]
-
Пытается интеллектуально выбрать пределы отображения.
- classmatplotlib.ticker.LogitFormatter(*, use_overline=False, one_half='\\frac{1}{2}', minor=False, minor_threshold=25, minor_number=6)[исходный код]
-
Базовые классы:
FormatterФорматировщик вероятностей (с использованием Math text).
- Параметры:
-
- use_overlinebool, по умолчанию: False
-
Если x > 1/2, где x = 1 - v, указывает, следует ли отображать x как $overline{v}$. По умолчанию отображается $1 - v$.
- one_halfstr, по умолчанию: r"\frac{1}{2}"
-
Строка для представления 1/2.
- minorbool, по умолчанию: False
-
Указывает, форматирует ли форматировщик малые деления. Как правило, малые деления не подписываются, за исключением случаев, когда делений мало: тогда подписываются деления, наиболее удаленные от соседних. Чтобы изменить поведение по умолчанию, см. другие параметры.
- minor_thresholdint, по умолчанию: 25
-
Максимальное количество расположений для подписывания некоторых малых делений. Этот параметр не действует, если minor имеет значение False.
- minor_numberint, по умолчанию: 6
-
Количество подписываемых делений, если их количество меньше порогового значения.
- format_data_short(value)[исходный код]
-
Возвращает короткое строковое представление значения деления.
По умолчанию возвращается длинное представление, не зависящее от положения.
- set_locs(locs)[исходный код]
-
Задает расположение делений.
Этот метод вызывается перед вычислением подписей делений, поскольку некоторым форматировщикам для этого необходимо знать расположение всех делений.
- set_minor_number(minor_number)[исходный код]
-
Задает количество малых делений, которые следует подписывать, если подписываются некоторые малые деления.
- Параметры:
-
- minor_numberint
-
Количество подписываемых делений, если их количество меньше порогового значения.
- set_minor_threshold(minor_threshold)[исходный код]
-
Задает порог для подписывания малых делений.
- Параметры:
-
- minor_thresholdint
-
Максимальное количество расположений для подписывания некоторых малых делений. Этот параметр не действует, если minor имеет значение False.
- set_one_half(one_half)[исходный код]
-
Задает способ отображения одной второй.
- one_halfstr
-
Строка для представления 1/2.
- use_overline(use_overline)[исходный код]
-
Переключает режим отображения на надчеркивание при подписывании p>1/2.
- Параметры:
-
- use_overlinebool
-
Если x > 1/2, где x = 1 - v, указывает, следует ли отображать x как $overline{v}$. По умолчанию отображается $1 - v$.
- classmatplotlib.ticker.LogitLocator(minor=False, *, nbins='auto')[исходный код]
-
Основания:
MaxNLocatorРазмещает отметки с равномерным интервалом на логит-шкале.
- Параметры:
-
- nbinsint or 'auto', optional
-
Количество отметок. Используется, только если minor равно False.
- minorbool, default: False
-
Указывает, предназначен ли этот локатор для малых отметок.
- propertyminor
- nonsingular(vmin, vmax)[исходный код]
-
При необходимости корректирует диапазон, чтобы избежать особых случаев.
Этот метод вызывается при автоматическом подборе масштаба; если оси содержат данные,
(v0, v1)устанавливается в пределы данных на осях, а если нет — в(-inf, +inf).- Если
v0 == v1(с возможной погрешностью округления с плавающей точкой), метод возвращает расширенный интервал вокруг этого значения. - Если
(v0, v1) == (-inf, +inf), метод возвращает подходящие пределы отображения по умолчанию. - В противном случае
(v0, v1)возвращается без изменений.
- Если
- set_params(minor=None, **kwargs)[исходный код]
-
Задаёт параметры этого локатора.
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения размещённых отметок для заданных vmin и vmax.
Примечание
Чтобы получить расположение отметок с автоматически заданными значениями vmin и vmax для соответствующего
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- classmatplotlib.ticker.MaxNLocator(nbins=None, **kwargs)[исходный код]
-
Основания:
LocatorРазмещает отметки с равномерным интервалом, ограничивая их общее количество.
Находит удобные положения отметок, причём в пределах отображения располагается не более \(nbins + 1\) отметок. Положения за пределами добавляются для поддержки автоматического подбора масштаба.
- Параметры:
-
- nbinsint or 'auto', default: 10
-
Максимальное количество интервалов; на единицу меньше максимального количества отметок. Если задана строка 'auto', количество интервалов будет определено автоматически на основе длины оси.
- stepsarray-like, optional
-
Последовательность допустимых множителей отметок, начинающаяся с 1 и заканчивающаяся 10. Например, если
steps=[1, 2, 4, 5, 10],20, 40, 60или0.4, 0.6, 0.8могут быть допустимыми наборами отметок, поскольку они кратны 2.30, 60, 90не будет создан, так как 3 отсутствует в этом примере списка шагов. - integerbool, default: False
-
Если значение True, отметки будут иметь только целочисленные значения, при условии, что в пределах отображения найдено не менее min_n_ticks целых чисел.
- symmetricbool, default: False
-
Если значение True, автоматический подбор масштаба приведёт к диапазону, симметричному относительно нуля.
- prune{'lower', 'upper', 'both', None}, default: None
-
Удаляет нижнюю отметку, верхнюю отметку или отметки с обеих сторон, если они точно совпадают с краем оси (обычно это происходит, когда
rcParams["axes.autolimit_mode"](по умолчанию:'data') равно 'round_numbers'). Удаление таких отметок полезно главным образом для составных графиков или графиков с общими осями, где верхняя отметка одних осей перекрывается с нижней отметкой осей, расположенных выше. - min_n_ticksint, default: 2
-
При необходимости ослабляет ограничения nbins и integer, чтобы получить как минимум указанное количество отметок.
- default_params={'integer': False, 'min_n_ticks': 2, 'nbins': 10, 'prune': None, 'steps': None, 'symmetric': False}
- set_params(**kwargs)[исходный код]
-
Задаёт параметры этого локатора.
- Параметры:
-
- nbinsint or 'auto', optional
-
см.
MaxNLocator - stepsarray-like, optional
-
см.
MaxNLocator - integerbool, optional
-
см.
MaxNLocator - symmetricbool, optional
-
см.
MaxNLocator - prune{'lower', 'upper', 'both', None}, optional
-
см.
MaxNLocator - min_n_ticksint, optional
-
см.
MaxNLocator
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения размещённых отметок для заданных vmin и vmax.
Примечание
Чтобы получить расположение отметок с автоматически заданными значениями vmin и vmax для соответствующего
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- view_limits(dmin, dmax)[исходный код]
-
Выбирает масштаб диапазона от vmin до vmax.
Подклассам следует переопределить этот метод, чтобы изменить поведение локатора.
- classmatplotlib.ticker.MultipleLocator(base=1.0, offset=0.0)[исходный код]
-
Основания:
LocatorРазмещает отметки на каждом целом кратном значении base с добавлением смещения.
- Параметры:
-
- basefloat > 0, default: 1.0
-
Интервал между отметками.
- offsetfloat, default: 0.0
-
Значение, добавляемое к каждому кратному base.
Добавлено в версии 3.8.
- set_params(base=None, offset=None)[исходный код]
-
Задаёт параметры этого локатора.
- Параметры:
-
- basefloat > 0, optional
-
Интервал между отметками.
- offsetfloat, optional
-
Значение, добавляемое к каждому кратному base.
Добавлено в версии 3.8.
- tick_values(vmin, vmax)[исходный код]
-
Возвращает значения размещённых отметок для заданных vmin и vmax.
Примечание
Чтобы получить расположение отметок с автоматически заданными значениями vmin и vmax для соответствующего
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- view_limits(dmin, dmax)[исходный код]
-
Устанавливает пределы отображения в ближайшие значения отметок, охватывающие данные.
- classmatplotlib.ticker.NullFormatter[исходный код]
-
Bases:
FormatterВсегда возвращает пустую строку.
- classmatplotlib.ticker.NullLocator[исходный код]
-
Bases:
LocatorБез делений
- tick_values(vmin, vmax)[исходный код]
-
Возвращает координаты делений.
Примечание
Поскольку значения равны Null, vmin и vmax в этом методе не используются.
- classmatplotlib.ticker.PercentFormatter(xmax=100, decimals=None, symbol='%', is_latex=False)[исходный код]
-
Bases:
FormatterФорматирует числа в виде процентов.
- Параметры:
-
- xmaxfloat
-
Определяет, как число преобразуется в процент. xmax — это значение данных, соответствующее 100%. Проценты вычисляются как
x / xmax * 100. Поэтому, если данные уже представлены в процентах, xmax будет равно 100. Другой распространённый случай — когда xmax равно 1.0. - decimalsNone or int
-
Количество знаков после десятичной точки. Если задано None (значение по умолчанию), количество знаков вычисляется автоматически.
- symbolstr or None
-
Строка, добавляемая к метке. Можно задать None или пустую строку, чтобы не использовать символ. Специальные символы LaTeX в symbol экранируются, если включён режим LaTeX, за исключением случая, когда is_latex имеет значение True.
- is_latexbool
-
Если задано False, зарезервированные символы LaTeX в symbol будут экранированы.
- convert_to_pct(x)[исходный код]
- format_pct(x, display_range)[исходный код]
-
Форматирует число как процент, задавая необходимое количество знаков после десятичной точки и добавляя символ процента, если он задан.
Если
self.decimalsимеет значениеNone, количество знаков после десятичной точки определяется диапазоном display_range оси следующим образом:display_range
количество знаков
пример
>50
0
x = 34.5=> 35%>5
1
x = 34.5=> 34.5%>0.5
2
x = 34.5=> 34.50%...
...
...
Этот метод может работать недостаточно хорошо при очень малых или чрезвычайно больших диапазонах оси. Он предполагает, что значения на графике представлены в процентах в разумном масштабе.
- propertysymbol
-
Заданный символ процента в виде строки.
Если LaTeX включён с помощью
rcParams["text.usetex"](по умолчанию:False), специальные символы{'#', '$', '%', '&', '~', '_', '^', '\', '{', '}'}автоматически экранируются в строке.
- classmatplotlib.ticker.ScalarFormatter(useOffset=None, useMathText=None, useLocale=None, *, usetex=None)[исходный код]
-
Базовые классы:
FormatterФорматирует значения делений как числа.
- Параметры:
-
-
useOffsetbool или float, по умолчанию:
rcParams["axes.formatter.useoffset"](по умолчанию:True) -
Использовать ли запись со смещением. См.
set_useOffset. -
useMathTextbool, по умолчанию:
rcParams["axes.formatter.use_mathtext"](по умолчанию:False) -
Использовать ли расширенное форматирование математических выражений. См.
set_useMathText. -
useLocalebool, по умолчанию:
rcParams["axes.formatter.use_locale"](по умолчанию:False). -
Использовать ли настройки локали для десятичного разделителя и знака плюса. См.
set_useLocale. -
usetexbool, по умолчанию:
rcParams["text.usetex"](по умолчанию:False) -
Включить или отключить использование математического режима TeX для отображения чисел форматтером.
Добавлено в версии 3.10.
-
useOffsetbool или float, по умолчанию:
Примечания
Помимо указанных выше параметров, форматирование в виде научной записи или числа с плавающей точкой можно настроить с помощью
set_scientificиset_powerlimits).Запись со смещением и научная запись
На первый взгляд запись со смещением и научная запись очень похожи. В обоих случаях часть информации выносится из отформатированных значений делений и отображается у края оси.
- В научной записи выносится порядок величины, то есть множитель, например
1e6. - В записи со смещением выносится аддитивная константа, например
+1e6. Метка смещения всегда имеет префикс в виде знака+или-, поэтому её можно отличить от метки порядка величины.
На следующем графике с пределами по оси x от
1_000_000до1_000_010показаны различия в форматировании. Обратите внимание на метки у правого края оси x.(
Source code,2x.png,png)- format_data(value)[исходный код]
-
Возвращает полное строковое представление значения без указания позиции.
- format_data_short(value)[исходный код]
-
Возвращает краткое строковое представление значения деления.
По умолчанию возвращается длинное значение, не зависящее от позиции.
- get_offset()[исходный код]
-
Возвращает научную запись и смещение.
- get_useLocale()[исходный код]
-
Возвращает признак использования настроек локали при форматировании.
См. также
- get_useMathText()[исходный код]
-
Возвращает признак использования расширенного форматирования математических выражений.
См. также
- get_useOffset()[исходный код]
-
Возвращает признак активности автоматического режима записи со смещением.
Возвращает True, если
set_useOffset(True); возвращает False, если задано явное смещение, напримерset_useOffset(1000).См. также
- get_usetex()[исходный код]
-
Возвращает признак включения математического режима TeX для отображения.
- set_locs(locs)[исходный код]
-
Задаёт положения делений.
Этот метод вызывается перед вычислением меток делений, поскольку некоторым форматтерам для этого необходимо знать положения всех делений.
- set_powerlimits(lims)[исходный код]
-
Задаёт пороговые значения для научной записи.
- Параметры:
-
- lims(int, int)
-
Кортеж (min_exp, max_exp), содержащий степени 10, которые задают порог переключения. Для числа, представимого в виде \(a \times 10^\mathrm{exp}\), где \(1 <= |a| < 10\), будет использоваться научная запись, если
exp <= min_expилиexp >= max_exp.Пределы по умолчанию задаются параметром
rcParams["axes.formatter.limits"](по умолчанию:[-5, 6]).В частности, числа с exp, равным пороговым значениям, записываются в научной нотации.
Обычно min_exp отрицателен, а max_exp положителен.
Например,
formatter.set_powerlimits((-3, 4))задаст следующее форматирование: \(1 \times 10^{-3}, 9.9 \times 10^{-3}, 0.01,\) \(9999, 1 \times 10^4\).
См. также
- set_scientific(b)[исходный код]
-
Включает или отключает научную запись.
См. также
- set_useLocale(val)[исходный код]
-
Задаёт, использовать ли настройки локали для десятичного разделителя и знака плюса.
- Параметры:
-
- valbool или None
-
None сбрасывает значение к
rcParams["axes.formatter.use_locale"](по умолчанию:False).
- set_useMathText(val)[исходный код]
-
Задаёт, использовать ли расширенное форматирование математических выражений.
Если оно включено, научная запись форматируется как \(1.2 \times 10^3\).
- Параметры:
-
- valbool или None
-
None сбрасывает значение к
rcParams["axes.formatter.use_mathtext"](по умолчанию:False).
- set_useOffset(val)[исходный код]
-
Задаёт, использовать ли запись со смещением.
При форматировании набора чисел, значения которых велики по сравнению с диапазоном, форматтер может вынести аддитивную константу. Это позволяет сократить форматированные числа, чтобы уменьшить вероятность их наложения при отображении на оси.
- Параметры:
-
- valbool или float
-
- Если False, запись со смещением не используется.
- Если True (автоматический режим), запись со смещением используется, если она позволяет значительно сократить остаточные числа. Точное поведение определяется параметром
rcParams["axes.formatter.offset_threshold"](по умолчанию:4). - Если задано число, принудительно используется смещение с указанным значением.
Примеры
При включённой записи со смещением значения
100_000, 100_002, 100_004, 100_006, 100_008будут отформатированы как
0, 2, 4, 6, 8со смещением+1e5, которое отображается у края оси.
- set_usetex(val)[source]
-
Задать, следует ли использовать математический режим TeX для отображения чисел форматировщиком.
- propertyuseLocale
-
Возвращает, используются ли настройки локали для форматирования.
См. также
- propertyuseMathText
-
Возвращает, следует ли использовать расширенное форматирование математических выражений.
См. также
- propertyuseOffset
-
Возвращает, активен ли автоматический режим смещённой записи.
Возвращает True, если
set_useOffset(True); возвращает False, если задано явное смещение, напримерset_useOffset(1000).См. также
- propertyusetex
-
Возвращает, включён ли математический режим TeX для отображения.
- classmatplotlib.ticker.StrMethodFormatter(fmt)[source]
-
Базовые классы:
FormatterИспользует строку форматирования нового стиля (применяемую в
str.format) для форматирования отметки деления.Поле, используемое для значения отметки деления, должно называться x, а поле, используемое для положения отметки деления, — pos.
При форматировании отрицательных числовых значений форматировщик учитывает
rcParams["axes.unicode_minus"](по умолчанию:True).Обычно нет необходимости явно создавать объекты
StrMethodFormatter, посколькуset_major_formatterпринимает саму строку форматирования.
- classmatplotlib.ticker.SymmetricalLogLocator(transform=None, subs=None, linthresh=None, base=None)[source]
-
Базовые классы:
LocatorРазмещает отметки деления с линейным интервалом вблизи нуля и с логарифмическим интервалом за пределами порогового значения.
- Параметры:
-
-
transform
SymmetricalLogTransform, необязательный -
Если задан, определяет base и linthresh симметричного логарифмического преобразования.
- base, linthreshfloat, необязательный
-
base и linthresh симметричного логарифмического преобразования, как описано в документации для
SymmetricalLogScale. Эти параметры используются только в том случае, если transform не задан. - subsпоследовательность значений float, по умолчанию: [1]
-
Множители целых степеней основания, в которых размещаются отметки деления, то есть отметки деления размещаются в
[sub * base**i for i in ... for sub in subs].
-
transform
Примечания
Необходимо указать либо transform, либо оба параметра — base и linthresh.
- set_params(subs=None, numticks=None)[source]
-
Задаёт параметры этого локатора.
- tick_values(vmin, vmax)[source]
-
Возвращает значения расположенных отметок деления для заданных vmin и vmax.
Примечание
Чтобы получить положения отметок деления с автоматически определёнными значениями vmin и vmax для связанного
axis, просто вызовите экземпляр Locator:>>> print(type(loc)) <type 'Locator'> >>> print(loc()) [1, 2, 3, 4]
- view_limits(vmin, vmax)[source]
-
Пытается разумно выбрать границы отображения.
- classmatplotlib.ticker.TickHelper[source]
-
Базовые классы:
object- axis=None
- create_dummy_axis(**kwargs)[source]
- set_axis(axis)[source]
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/ticker_api.html