Matplotlib Tick Locators

PythonPythonBeginner

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом уроке мы узнаем, как определить позицию делений на графике в matplotlib с использованием делителей позиций делений (tick locators). Делители позиций делений помогают сделать графики более читаемыми, определяя позиции делений на осях x и y. Мы рассмотрим различные типы делителей позиций делений и как их реализовать в графике matplotlib.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится. Валидация операций не может быть автоматизирована из-за ограничений в Jupyter Notebook.

Если вы сталкиваетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт библиотек

Первым шагом является импорт необходимых библиотек. Мы будем использовать matplotlib.pyplot и matplotlib.ticker.

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

Настройка графика

Далее мы настроим график, создав фигуру и массив подграфиков. Также мы определим функцию setup, которая настраивает общие параметры осей в примере.

fig, axs = plt.subplots(8, 1, figsize=(8, 6))

def setup(ax, title):
    """Set up common parameters for the Axes in the example."""
    ## only show the bottom spine
    ax.yaxis.set_major_locator(ticker.NullLocator())
    ax.spines[['left', 'right', 'top']].set_visible(False)

    ax.xaxis.set_ticks_position('bottom')
    ax.tick_params(which='major', width=1.00, length=5)
    ax.tick_params(which='minor', width=0.75, length=2.5)
    ax.set_xlim(0, 5)
    ax.set_ylim(0, 1)
    ax.text(0.0, 0.2, title, transform=ax.transAxes,
            fontsize=14, fontname='Monospace', color='tab:blue')

Определение NullLocator

NullLocator - это делитель, который не размещает ни одного деления на оси. Мы можем определить NullLocator с использованием ticker.NullLocator().

setup(axs[0], title="NullLocator()")
axs[0].xaxis.set_major_locator(ticker.NullLocator())
axs[0].xaxis.set_minor_locator(ticker.NullLocator())

Определение MultipleLocator

MultipleLocator - это делитель, который размещает деления с равномерным интервалом. Мы можем определить MultipleLocator с использованием ticker.MultipleLocator().

setup(axs[1], title="MultipleLocator(0.5, offset=0.2)")
axs[1].xaxis.set_major_locator(ticker.MultipleLocator(0.5, offset=0.2))
axs[1].xaxis.set_minor_locator(ticker.MultipleLocator(0.1))

Определение FixedLocator

FixedLocator - это делитель, который размещает деления в фиксированных позициях. Мы можем определить FixedLocator с использованием ticker.FixedLocator().

setup(axs[2], title="FixedLocator([0, 1, 5])")
axs[2].xaxis.set_major_locator(ticker.FixedLocator([0, 1, 5]))
axs[2].xaxis.set_minor_locator(ticker.FixedLocator(np.linspace(0.2, 0.8, 4)))

Определение LinearLocator

LinearLocator - это делитель, который размещает деления с равномерным интервалом на линейной шкале. Мы можем определить LinearLocator с использованием ticker.LinearLocator().

setup(axs[3], title="LinearLocator(numticks=3)")
axs[3].xaxis.set_major_locator(ticker.LinearLocator(3))
axs[3].xaxis.set_minor_locator(ticker.LinearLocator(31))

Определение IndexLocator

IndexLocator - это делитель, который размещает деления с равномерным интервалом на шкале индекса. Мы можем определить IndexLocator с использованием ticker.IndexLocator().

setup(axs[4], title="IndexLocator(base=0.5, offset=0.25)")
axs[4].plot([0]*5, color='white')
axs[4].xaxis.set_major_locator(ticker.IndexLocator(base=0.5, offset=0.25))

Определение AutoLocator

AutoLocator - это делитель, который автоматически размещает деления с равномерным интервалом. Мы можем определить AutoLocator с использованием ticker.AutoLocator().

setup(axs[5], title="AutoLocator()")
axs[5].xaxis.set_major_locator(ticker.AutoLocator())
axs[5].xaxis.set_minor_locator(ticker.AutoMinorLocator())

Определение MaxNLocator

MaxNLocator - это делитель, который размещает максимальное количество делений на оси. Мы можем определить MaxNLocator с использованием ticker.MaxNLocator().

setup(axs[6], title="MaxNLocator(n=4)")
axs[6].xaxis.set_major_locator(ticker.MaxNLocator(4))
axs[6].xaxis.set_minor_locator(ticker.MaxNLocator(40))

Определение LogLocator

LogLocator - это делитель, который размещает деления с равномерным интервалом на логарифмической шкале. Мы можем определить LogLocator с использованием ticker.LogLocator().

setup(axs[7], title="LogLocator(base=10, numticks=15)")
axs[7].set_xlim(10**3, 10**10)
axs[7].set_xscale('log')
axs[7].xaxis.set_major_locator(ticker.LogLocator(base=10, numticks=15))

Отображение графика

Наконец, мы можем отобразить график с использованием plt.show().

plt.tight_layout()
plt.show()

Резюме

В этом уроке мы узнали, как определить позицию делений на графике в matplotlib с использованием делителей (locators). Мы рассмотрели различные типы делителей и как их реализовать в графике matplotlib. Это может помочь сделать графики более читаемыми и информативными.