ticker
matplotlib.ticker
Расположение и форматирование делений
Этот модуль содержит классы для поддержки полностью настраиваемого расположения и форматирования делений. Хотя локаторы не знают ничего о основных или дополнительных делениях, они используются классом Axis для поддержки расположения и форматирования основных и дополнительных делений. Предоставляются общие локаторы и форматировщики делений, а также специализированные для определенных областей.
Форматировщик по умолчанию
Форматировщик по умолчанию определяет, когда данные x, которые отображаются, представляют собой небольшой диапазон поверх большого смещения. Для уменьшения вероятности перекрытия меток делений метки делений помечены как разности от фиксированного смещения. Например:
ax.plot(np.arange(2000, 2010), range(10))
будет иметь деления от 0 до 9 со смещением +2e3. Если этого не нужно, отключите использование смещения в форматировщике по умолчанию:
ax.get_xaxis().get_major_formatter().set_useOffset(False)
установите rcParam axes.formatter.useoffset=False для глобального отключения или установите другой форматировщик.
Расположение делений
Класс Locator является базовым классом для всех локаторов делений. Локаторы обрабатывают автоматическое масштабирование пределов отображения на основе пределов данных и выбор расположения делений. Полезный полуавтоматический локатор делений — это MultipleLocator. Его инициализируют с основанием, например, 10, и он выбирает пределы оси и деления, которые являются кратными вашему основанию.
Подклассы Locator, определённые здесь:
-
NullLocator - Отсутствуют деления
-
FixedLocator - Расположение делений фиксировано
-
IndexLocator - Локатор для графиков индексов (например, где x = range(len(y)))
-
LinearLocator - Равномерно распределенные деления от min до max
-
LogLocator - Логарифмические деления от min до max
-
SymmetricalLogLocator - Локатор для использования с нормой symlog, работает как
LogLocatorдля части вне порога и добавляет 0, если внутри пределов -
MultipleLocator -
- деления и диапазон — кратны основанию;
- целое или вещественное число
-
OldAutoLocator - выберите MultipleLocator и динамически переназначьте его для интеллектуального выбора делений во время навигации
-
MaxNLocator - находит до максимального количества делений в удобных местах
-
AutoLocator -
MaxNLocatorс простыми значениями по умолчанию. Это локатор делений по умолчанию для большинства графиков. -
AutoMinorLocator - локатор для дополнительных делений, когда ось линейная, а основные деления равномерно распределены. Он разбивает интервал основных делений на заданное количество дополнительных интервалов, по умолчанию 4 или 5, в зависимости от интервала основных делений.
Существует ряд локаторов, специализирующихся на расположении дат — см. модуль dates.
Вы можете определить свой собственный локатор, производя его от Locator. Вам необходимо переопределить метод __call__, который возвращает последовательность местоположений, и, вероятно, вам захочется переопределить метод autoscale для задания пределов отображения по пределом данных.
Если вы хотите переопределить локатор по умолчанию, используйте один из вышеперечисленных или настраиваемый локатор и передайте его экземпляру оси x или y. Соответствующие методы:
ax.xaxis.set_major_locator( xmajorLocator ) ax.xaxis.set_minor_locator( xminorLocator ) ax.yaxis.set_major_locator( ymajorLocator ) ax.yaxis.set_minor_locator( yminorLocator )
Локатор дополнительных делений по умолчанию — это NullLocator, т.е. по умолчанию дополнительных делений нет.
Форматирование делений
Форматирование делений контролируется классами, производными от Formatter. Форматировщик обрабатывает одно значение деления и возвращает строку оси.
-
NullFormatter - метки делений отсутствуют
-
IndexFormatter - установите строки из списка меток
-
FixedFormatter - установите строки для меток вручную
-
FuncFormatter - пользовательская функция устанавливает метки
-
StrMethodFormatter - Использование строки
formatметода -
FormatStrFormatter - использование строки форматирования sprintf
-
ScalarFormatter - Форматировщик по умолчанию для скалярных значений; автоматически выбирает строку fmt
-
LogFormatter - Форматировщик для логарифмических осей
Вы можете создать свой собственный форматировщик, производя его от базового класса Formatter, просто переопределив метод __call__. Класс форматировщика имеет доступ к пределом отображения и данных оси.
Для управления форматированием меток основных и дополнительных делений используйте один из следующих методов:
ax.xaxis.set_major_formatter( xmajorFormatter ) ax.xaxis.set_minor_formatter( xminorFormatter ) ax.yaxis.set_major_formatter( ymajorFormatter ) ax.yaxis.set_minor_formatter( yminorFormatter )
См. пример pylab_examples: major_minor_demo1.py для примера установки основных и дополнительных делений. См. модуль matplotlib.dates для получения дополнительной информации и примеров использования локаторов и форматировщиков дат.
-
class matplotlib.ticker.TickHelper -
Bases:
object-
axis = None
-
create_dummy_axis(**kwargs)
-
set_axis(axis)
-
set_bounds(vmin, vmax)
-
set_data_interval(vmin, vmax)
-
set_view_interval(vmin, vmax)
-
-
class matplotlib.ticker.Formatter -
Bases:
matplotlib.ticker.TickHelperПреобразует расположение деления в строку
-
fix_minus(s) -
Некоторые классы могут захотеть заменить дефис на минус соответствующим символом Unicode (U+2212) для типографической точности. По умолчанию замены не производится.
Обратите внимание, если вы используете этот метод, например, в
format_data()или вызове, вероятно, не стоит его использовать дляformat_data_short(), так как панель инструментов использует его для интерактивного отчёта о координатах, и вряд ли можно ожидать, что интерфейсы пользователя разных платформ будут правильно обрабатывать символы Unicode. Поэтому на данный момент классы, переопределяющиеfix_minus(), должны иметь явное определение методаformat_data_short()
-
format_data(value)
-
format_data_short(value) -
возвращает короткую строковую версию
-
get_offset()
-
locs = []
-
set_locs(locs)
-
-
class matplotlib.ticker.FixedFormatter(seq) -
Bases:
matplotlib.ticker.FormatterВозвращает фиксированные строки для меток делений
seq — последовательность строк. Для позиций
i < len(seq)возвращает seq[i] независимо от x. В противном случае возвращает ‘’-
get_offset()
-
set_offset_string(ofs)
-
-
class matplotlib.ticker.NullFormatter -
Bases:
matplotlib.ticker.FormatterВсегда возвращает пустую строку
-
class matplotlib.ticker.FuncFormatter(func) -
Bases:
matplotlib.ticker.FormatterПользовательская функция для форматирования
Функция должна принимать два входа (значение деления x и позицию pos) и возвращать строку
-
class matplotlib.ticker.FormatStrFormatter(fmt) -
Bases:
matplotlib.ticker.FormatterИспользуйте строку форматирования старого стиля (‘%’ оператор) для форматирования делений шкалы
-
class matplotlib.ticker.StrMethodFormatter(fmt) -
Bases:
matplotlib.ticker.FormatterИспользуйте строку форматирования нового стиля (как используется в
str.format()) для форматирования делений шкалы. Форматирование поля должно быть помеченоx.
-
class matplotlib.ticker.ScalarFormatter(useOffset=None, useMathText=None, useLocale=None) -
Bases:
matplotlib.ticker.FormatterПозиция деления шкалы — простое число. Если useOffset==True и диапазон данных намного меньше среднего значения данных, то будет определён смещение, чтобы метки делений шкалы были осмысленными. Научная запись используется для данных < 10^-n или данных >= 10^m, где n и m — пределы степени, установленные с помощью set_powerlimits((n,m)). Значения по умолчанию контролируются параметром axes.formatter.limits rc.
-
fix_minus(s) -
Используйте символ минус Unicode вместо дефиса
-
format_data(value) -
Возвращает отформатированную строку представления числа
-
format_data_short(value) -
Возвращает короткий отформатированный строковый вид представления числа
-
get_offset() -
Возвращает научную запись плюс смещение
-
get_useLocale()
-
get_useOffset()
-
pprint_val(x)
-
set_locs(locs) -
Устанавливает положения делений шкалы
-
set_powerlimits(lims) -
Устанавливает пороговые значения размера для научной записи.
Например,
formatter.set_powerlimits((-3, 4))устанавливает значение по умолчанию до 2007 года, в котором научная запись используется для чисел меньше 1e-3 или больше 1e4. См. такжеset_scientific().
-
set_scientific(b) -
Истина или ложь для включения или выключения научной записи. См. также
set_powerlimits()
-
set_useLocale(val)
-
set_useOffset(val)
-
useLocale
-
useOffset
-
-
class matplotlib.ticker.LogFormatter(base=10.0, labelOnlyBase=True) -
Bases:
matplotlib.ticker.FormatterФорматирование значений для логарифмической оси;
base используется для определения десятка делений шкалы, который будет единственным помеченным, если labelOnlyBase равно
False-
base(base) -
изменение base для маркировки - предупреждение: должно всегда соответствовать основанию, используемому для
LogLocator
-
format_data(value)
-
format_data_short(value) -
Возвращает короткий отформатированный строковый вид представления числа
-
label_minor(labelOnlyBase) -
Включение/выключение маркировки малых делений шкалы
-
pprint_val(x, d)
-
-
class matplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=True) -
Bases:
matplotlib.ticker.LogFormatterФорматирование значений для логарифмической оси; с использованием
exponent = log_base(value)base используется для определения десятка делений шкалы, который будет единственным помеченным, если labelOnlyBase равно
False
-
class matplotlib.ticker.LogFormatterMathtext(base=10.0, labelOnlyBase=True) -
Bases:
matplotlib.ticker.LogFormatterФорматирование значений для логарифмической оси; с использованием
exponent = log_base(value)base используется для определения десятка делений шкалы, который будет единственным помеченным, если labelOnlyBase равно
False
-
class matplotlib.ticker.Locator -
Bases:
matplotlib.ticker.TickHelperОпределение расположения делений шкалы;
Обратите внимание, что вы не должны использовать один и тот же локатор между разными
Axis, так как локатор хранит ссылки на данные оси и пределы области просмотра.-
MAXTICKS = 1000
-
autoscale() -
Автоматическое масштабирование пределов области просмотра
-
pan(numsteps) -
Прокрутка numticks (может быть положительным или отрицательным)
-
raise_if_exceeds(locs) -
вызывает RuntimeError, если Locator пытается создать более MAXTICKS loc
-
refresh() -
обновить внутреннюю информацию на основе текущего предела
-
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
Обычно этот метод переопределяется подклассами для изменения поведения локализации.
-
zoom(direction) -
Увеличить/уменьшить масштаб оси; если направление >0, увеличить масштаб, иначе уменьшить
-
-
class matplotlib.ticker.IndexLocator(base, offset) -
Bases:
matplotlib.ticker.LocatorПоместить деление шкалы на каждом кратном определенному базовому числу точек, нанесенных на график, например, на каждой пятой точке. Предполагается, что вы выполните построение по индексам; т.е., ось — 0, len(данные). Это преимущественно полезно для делений шкалы x.
разместите деления шкалы на i-й точках данных, где (i-смещение)%база==0
-
set_params(base=None, offset=None) -
Установить параметры в данном локаторе
-
tick_values(vmin, vmax)
-
-
class matplotlib.ticker.FixedLocator(locs, nbins=None) -
Bases:
matplotlib.ticker.LocatorПоложения делений шкалы фиксированы. Если nbins не равно None, массив возможных позиций будет подвергнут субдискретизации, чтобы число делений шкалы было <= nbins +1. Субдискретизация будет выполнена таким образом, чтобы включать наименьшее по абсолютной величине значение; например, если ноль включён в массив возможных значений, то он гарантированно будет одним из выбранных делений шкалы.
-
set_params(nbins=None) -
Установить параметры в данном локаторе.
-
tick_values(vmin, vmax) -
Возвращает позиции делений шкалы.
Примечание
Поскольку значения фиксированы, vmin и vmax в этом методе не используются.
-
-
class matplotlib.ticker.NullLocator -
Bases:
matplotlib.ticker.LocatorНет делений шкалы
-
tick_values(vmin, vmax) -
Возвращает позиции делений шкалы.
Примечание
Поскольку значения Null, vmin и vmax в этом методе не используются.
-
-
class matplotlib.ticker.LinearLocator(numticks=None, presets=None) -
Базы:
matplotlib.ticker.LocatorОпределение расположения делений шкалы
В первый раз при вызове этой функции она попытается установить количество делений для создания красивого разделения. В дальнейшем количество делений будет фиксироваться для удобства интерактивного навигации.
Используйте предопределённые значения для установки locs на основе lom. Словарь, сопоставляющий vmin, vmax -> locs
-
set_params(numticks=None, presets=None) -
Установить параметры внутри этого локета.
-
tick_values(vmin, vmax)
-
view_limits(vmin, vmax) -
Попытка разумно выбрать пределы отображения
-
-
class matplotlib.ticker.LogLocator(base=10.0, subs=[1.0], numdecs=4, numticks=15) -
Базы:
matplotlib.ticker.LocatorОпределение расположения делений шкалы логарифмических осей
Поместить деления в позиции location= base**i*subs[j]
-
base(base) -
Установить основание логарифмической шкалы (главное деление каждые base**i, i целое число)
-
set_params(base=None, subs=None, numdecs=None, numticks=None) -
Установить параметры внутри этого локета.
-
subs(subs) -
Установить дополнительные деления на логарифмической шкале каждые base**i*subs[j]
-
tick_values(vmin, vmax)
-
view_limits(vmin, vmax) -
Попытка разумно выбрать пределы отображения
-
-
class matplotlib.ticker.AutoLocator
-
class matplotlib.ticker.MultipleLocator(base=1.0) -
Базы:
matplotlib.ticker.LocatorУстановить деление на каждом целом числе, кратном base, в интервале отображения
-
set_params(base) -
Установить параметры внутри этого локета.
-
tick_values(vmin, vmax)
-
view_limits(dmin, dmax) -
Установить пределы отображения на ближайшие кратные base, содержащие данные
-
-
class matplotlib.ticker.MaxNLocator(*args, **kwargs) -
Базы:
matplotlib.ticker.LocatorВыбрать не более N интервалов в красивых местах.
Ключевые параметры:
- nbins
- Максимальное количество интервалов; на один меньше, чем максимальное количество делений.
- steps
- Последовательность красивых чисел, начиная с 1 и заканчивая 10; например, [1, 2, 4, 5, 10]
- integer
- Если True, деления будут принимать только целые значения.
- symmetric
- Если True, автоматическое масштабирование приведет к диапазону, симметричному относительно нуля.
- prune
- [‘нижний’ | ‘верхний’ | ‘оба’ | None] Удалить крайние деления – полезно для стопки или связанных графиков, где верхнее деление одной оси перекрывает нижнее деление оси над ней. Если prune==‘нижний’, удаляется наименьшее деление. Если prune==‘верхний’, удаляется наибольшее деление. Если prune==‘оба’, удаляются наибольшее и наименьшее деления. Если prune==None, деления не удаляются.
-
bin_boundaries(vmin, vmax)
-
default_params = {'nbins': 10, 'prune': None, 'symmetric': False, 'steps': None, 'integer': False, 'trim': True}
-
set_params(**kwargs) -
Установить параметры внутри этого локета.
-
tick_values(vmin, vmax)
-
view_limits(dmin, dmax)
-
class matplotlib.ticker.AutoMinorLocator(n=None) -
Базы:
matplotlib.ticker.LocatorДинамически находит положения дополнительных делений на основе позиций основных делений. Предполагается, что масштаб линейный, а основные деления равномерно распределены.
n — количество подделений интервала между основными делениями; например, n=2 поместит одно дополнительное деление посередине между основными делениями.
Если n опущено или равно None, оно будет установлено в 5 или 4.
-
tick_values(vmin, vmax)
-
-
class matplotlib.ticker.SymmetricalLogLocator(transform, subs=None) -
Базы:
matplotlib.ticker.LocatorОпределение расположения делений шкалы логарифмических осей
Поместить деления в позиции location= base**i*subs[j]
-
set_params(subs=None, numticks=None) -
Установить параметры внутри этого локета.
-
tick_values(vmin, vmax)
-
view_limits(vmin, vmax) -
Попытка разумно выбрать пределы отображения
-
© 2012–2016 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/1.5.3/api/ticker_api.html