Выравнивание меток посередине между делениями на шкале

PythonPythonBeginner
Практиковаться сейчас

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

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

Введение

В этом практическом занятии мы научимся выравнивать метки между делениями на шкале в графике Matplotlib с использованием Python. По умолчанию метки делений выровнены относительно соответствующего деления на шкале, но нет прямого способа выровнять метки ровно посередине между делениями. Однако, мы можем поместить метку на вторичных делениях между основными делениями и скрыть метки основных делений и вторичные деления, чтобы имитировать такое поведение. Мы будем использовать финансовые данные о цене акций Google, чтобы продемонстрировать этот метод.

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

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

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

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

Загрузка финансовых данных

Сначала нам нужно загрузить некоторые финансовые данные о цене акций Google с использованием функции cbook.get_sample_data() из Matplotlib. Мы будем использовать данные за последние 250 дней.

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

## Load some financial data; Google's stock price
r = cbook.get_sample_data('goog.npz')['price_data'].view(np.recarray)
r = r[-250:]  ## get the last 250 days

Создание графика

Далее мы создадим график с использованием функции subplots() из Matplotlib и построим график изменения цены закрытия акций Google с учетом корректировок в течение времени.

fig, ax = plt.subplots()
ax.plot(r.date, r.adj_close)

Настройка основных и вторичных делителей и форматтеров

Для выравнивания меток посередине между делениями на шкале нам нужно настроить основные и вторичные делители и форматтеры для оси x. Мы будем использовать функцию dates.MonthLocator() для настройки основных и вторичных делителей на месяц и функцию dates.DateFormatter() для форматирования меток вторичных делений в сокращенное название месяца.

import matplotlib.dates as dates
import matplotlib.ticker as ticker

ax.xaxis.set_major_locator(dates.MonthLocator())
## 16 - это небольшое приближение, так как количество дней в месяцах различается.
ax.xaxis.set_minor_locator(dates.MonthLocator(bymonthday=16))

ax.xaxis.set_major_formatter(ticker.NullFormatter())
ax.xaxis.set_minor_formatter(dates.DateFormatter('%b'))

Удаление меток основных делений и вторичных делений на шкале

Для имитации поведения выравнивания меток посередине между делениями на шкале нам нужно удалить метки основных делений и вторичные деления и показать только метки вторичных делений. Мы можем сделать это с помощью функции tick_params() и настройкой параметров tick1On и tick2On на False.

## Remove the tick lines
ax.tick_params(axis='x', which='minor', tick1On=False, tick2On=False)

Выровнять метки вторичных делений на шкале

Наконец, нам нужно выровнять метки вторичных делений на шкале посередине между основными делениями. Мы можем сделать это с помощью функции get_xticklabels() и настройкой параметра minor на True, чтобы получить метки вторичных делений. Затем мы можем пройти по меткам в цикле и установить горизонтальное выравнивание в 'center'.

## Align the minor tick label
for label in ax.get_xticklabels(minor=True):
    label.set_horizontalalignment('center')
imid = len(r) // 2
ax.set_xlabel(str(r.date[imid].item().year))

Показать график

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

plt.show()

Резюме

В этом практическом занятии мы узнали, как выравнивать метки посередине между делениями на шкале в графике Matplotlib с использованием Python. Мы использовали финансовые данные о цене акций Google для демонстрации этой техники и последовали следующим шагам:

  1. Загрузили финансовые данные
  2. Создали график
  3. Установили основные и вторичные делители и форматтеры
  4. Удалили метки основных делений и вторичные деления на шкале
  5. Выровняли метки вторичных делений на шкале посередине между основными делениями
  6. Показали график.