Spec-Zone.ru › Matplotlib

matplotlib.ticker

Размещение и форматирование делений

Этот модуль содержит классы для настройки размещения и форматирования делений. В нём представлены универсальные локаторы и форматтеры делений, а также специализированные для конкретных предметных областей варианты.

Хотя локаторы ничего не знают о главных и вспомогательных делениях, класс Axis использует их для поддержки размещения и форматирования главных и вспомогательных делений.

Размещение делений

Класс Locator — базовый класс для всех локаторов делений. Локаторы выполняют автоматическое масштабирование границ области просмотра на основе границ данных и выбирают положения делений. Полезный полуавтоматический локатор делений — MultipleLocator. Он инициализируется базовым значением, например 10, и выбирает границы осей и деления, кратные этому значению.

Определённые здесь подклассы Locator:

AutoLocator

MaxNLocator с простыми значениями по умолчанию. Это локатор делений по умолчанию для большинства графиков.

MaxNLocator

Находит не более заданного числа интервалов, размещая деления в удобных положениях.

LinearLocator

Равномерно размещает деления от минимального до максимального значения.

LogLocator

Размещает деления по логарифмической шкале от минимального до максимального значения.

MultipleLocator

Деления и диапазон кратны базовому значению — целому или вещественному числу.

FixedLocator

Положения делений заданы фиксированными значениями.

IndexLocator

Локатор для графиков индексов (например, где x = range(len(y))).

NullLocator

Без делений.

SymmetricalLogLocator

Локатор для нормализации symlog; работает как LogLocator за пределами порогового значения и добавляет 0, если оно попадает в заданные границы.

AsinhLocator

Локатор для нормализации asinh, который старается размещать деления примерно равномерно.

LogitLocator

Локатор для логит-масштабирования.

AutoMinorLocator

Локатор вспомогательных делений для линейной оси с равномерно расположенными главными делениями. Он делит интервал между главными делениями на заданное число вспомогательных интервалов, по умолчанию — на 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. Форматтер обрабатывает значение одного деления и возвращает строку для оси.

NullFormatter

Без подписей делений.

FixedFormatter

Задаёт строки подписей вручную.

FuncFormatter

Задаёт подписи с помощью пользовательской функции.

StrMethodFormatter

Использует строковый метод format.

FormatStrFormatter

Использует строку форматирования старого стиля sprintf.

ScalarFormatter

Форматтер по умолчанию для скалярных значений: автоматически выбирает строку форматирования.

LogFormatter

Форматтер для логарифмических осей.

LogFormatterExponent

Форматирует значения логарифмической оси с помощью exponent = log_base(value).

LogFormatterMathtext

Форматирует значения логарифмической оси с помощью exponent = log_base(value), используя математическую разметку.

LogFormatterSciNotation

Форматирует значения логарифмической оси в научной нотации.

LogitFormatter

Форматтер вероятностей.

EngFormatter

Форматирует подписи в инженерной нотации.

PercentFormatter

Форматирует подписи в виде процентов.

Можно создать собственный форматтер на основе базового класса 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 подынтервала.

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.

Примечания

Помимо указанных выше параметров, форматирование в виде научной записи или числа с плавающей точкой можно настроить с помощью 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()[исходный код]

Возвращает признак использования настроек локали при форматировании.

См. также

ScalarFormatter.set_useLocale
get_useMathText()[исходный код]

Возвращает признак использования расширенного форматирования математических выражений.

См. также

ScalarFormatter.set_useMathText
get_useOffset()[исходный код]

Возвращает признак активности автоматического режима записи со смещением.

Возвращает True, если set_useOffset(True); возвращает False, если задано явное смещение, например set_useOffset(1000).

См. также

ScalarFormatter.set_useOffset
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\).

См. также

ScalarFormatter.set_scientific
set_scientific(b)[исходный код]

Включает или отключает научную запись.

См. также

ScalarFormatter.set_powerlimits
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

Возвращает, используются ли настройки локали для форматирования.

См. также

ScalarFormatter.set_useLocale
propertyuseMathText

Возвращает, следует ли использовать расширенное форматирование математических выражений.

См. также

ScalarFormatter.set_useMathText
propertyuseOffset

Возвращает, активен ли автоматический режим смещённой записи.

Возвращает True, если set_useOffset(True); возвращает False, если задано явное смещение, например set_useOffset(1000).

См. также

ScalarFormatter.set_useOffset
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

Размещает отметки деления с линейным интервалом вблизи нуля и с логарифмическим интервалом за пределами порогового значения.

Параметры:
transformSymmetricalLogTransform, необязательный

Если задан, определяет base и linthresh симметричного логарифмического преобразования.

base, linthreshfloat, необязательный

base и linthresh симметричного логарифмического преобразования, как описано в документации для SymmetricalLogScale. Эти параметры используются только в том случае, если transform не задан.

subsпоследовательность значений float, по умолчанию: [1]

Множители целых степеней основания, в которых размещаются отметки деления, то есть отметки деления размещаются в [sub * base**i for i in ... for sub in subs].

Примечания

Необходимо указать либо 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]

Диаграмма наследования matplotlib.ticker

© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/ticker_api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API