Автор оригинала: David Landup.
Изменение частоты тиков в 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
Давайте изменим частоту тиков на уровне фигуры. Это означает , что если у нас есть несколько осей
, то тики на всех них будут одинаковыми и будут иметь одинаковую частоту:
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
. Вы также можете жестко закодировать переменные.
Последний аргумент-это шаг
. Именно здесь мы определяем, насколько большим должен быть каждый шаг. У нас будет клещ на каждом шагу. 5
шаги по оси X и галочка на каждом 2
шаги по оси Y:
Настройка частоты тиков на уровне оси в Matplotlib
Если у вас есть несколько графиков, вы можете изменить частоту тиков на уровне оси. Например, на одном графике вам нужны редкие тики, а на другом-частые.
Вы можете использовать функции set_xticks()
и set_yticks()
на возвращаемом экземпляре Axes
при добавлении подзаголовков к Фигуре
. Давайте создадим Фигуру
с двумя осями и изменим частоту тиков на них отдельно:
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 как на уровне рисунка, так и на уровне оси.
Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей книгой .
Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair.