Изменение частоты тиков в Matplotlib
Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Большая часть популярности Matplotlib связана с его параметрами настройки - вы можете настроить практически любой элемент из его иерархии объектов.
В этом руководстве мы рассмотрим, как изменить частоту тиков в Matplotlib. Мы сделаем это как на уровне фигуры, так и на уровне оси.
Как изменить частоту тиков в Matplotlib?
Начнем с простого сюжета. Мы построим две линии со случайными значениями:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.subplots(figsize=(12, 6))
x = np.random.randint(low=0, high=50, size=100)
y = np.random.randint(low=0, high=50, size=100)
plt.plot(x, color='blue')
plt.plot(y, color='black')
plt.show()
x
и y
варьируются от 0 до 50, а длина этих массивов равна 100. Это означает, что у нас будет 100 точек данных для каждого из них. Затем мы просто наносим эти данные на объект Axes
и показываем их через экземпляр PyPlot plt
:
Теперь частота тактов по оси X равна 20. Они автоматически устанавливаются на частоту, которая кажется подходящей для предоставленного нами набора данных.
Иногда нам хочется это изменить. Может быть, мы хотим уменьшить или увеличить частоту. Что, если бы мы хотели ставить галочку на каждые 5 шагов, а не на 20?
То же самое и с осью Y. Что, если различие на этой оси еще более важно, и мы хотели бы, чтобы каждая отметка была отмечена на каждом шаге?
Установка частоты тиков на уровне рисунка в Matplotlib
Изменим частоту тиков на уровне фигуры. Это означает, что если у нас несколько Axes
, отметки на всех из них будут одинаковыми и будут иметь одинаковую частоту:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.subplots(figsize=(12, 6))
x = np.random.randint(low=0, high=50, size=100)
y = np.random.randint(low=0, high=50, size=100)
plt.plot(x, color='blue')
plt.plot(y, color='black')
plt.xticks(np.arange(0, len(x)+1, 5))
plt.yticks(np.arange(0, max(y), 2))
plt.show()
Вы можете использовать функции xticks()
и yticks()
и передавать в массиве. По оси X этот массив начинается с 0
и заканчивается на длине массива x
. По оси Y он начинается 0
и заканчивается максимальным значением y
. Вы также можете жестко закодировать переменные.
Последний аргумент - расширение step
. Здесь мы определяем, насколько большим должен быть каждый шаг. У нас будет галочка на каждом 5
шаге по оси X и галочка на каждом 2
шаге по оси Y:
Установка частоты тиков на уровне оси в Matplotlib
Если у вас есть несколько графиков, вы можете изменить частоту тиков на уровне оси. Например, вам нужны редкие отметки на одном графике, а на другом - частые.
Вы можете использовать функции set_xticks()
и set_yticks()
в возвращенном экземпляре Axes
при добавлении подзаголовков в Figure
. Создадим Figure
с двумя осями и изменим частоту тиков на них отдельно:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(12, 6))
ax = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
x = np.random.randint(low=0, high=50, size=100)
y = np.random.randint(low=0, high=50, size=100)
z = np.random.randint(low=0, high=50, size=100)
ax.plot(x, color='blue')
ax.plot(y, color='black')
ax2.plot(y, color='black')
ax2.plot(z, color='green')
ax.set_xticks(np.arange(0, len(x)+1, 5))
ax.set_yticks(np.arange(0, max(y), 2))
ax2.set_xticks(np.arange(0, len(x)+1, 25))
ax2.set_yticks(np.arange(0, max(y), 25))
plt.show()
Теперь это приводит к:
Вывод
В этом руководстве мы рассмотрели несколько способов изменения частоты тиков в Matplotlib как на уровне фигуры, так и на уровне оси.