Добавление меток к вторичной оси Y в Matplotlib: примеры

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для добавления обозначения к дополнительной оси ординат в Matplotlib следует использовать метод set_ylabel(), применяемый к объекту, представляющему указанную ось. В приведённом ниже примере ax2 будет являться дополнительной осью Y:

Python
Скопировать код
import matplotlib.pyplot as plt

fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax2.set_ylabel('Вторичное обозначение')
plt.show()

Метод twinx() предназначен для создания указанной дополнительной оси, соответственно, set_ylabel() применяется уже потом. Как и в любом другом случае, обозначение вы можете настроить по своему вкусу, к примеру, задать шрифт или выбрать цвет.

Кинга Идем в IT: пошаговый план для смены профессии

Взаимодействие с двумя осями

Сложные аналитические задачи иногда требуют использования двух осей в графике. Разберёмся детальней, как добавить и настроить дополнительную ось Y в Matplotlib.

Создание дополнительной оси Y

Для создания блока дополнительной оси Y необходимо применить метод twinx(). После этого к ней можно добавить метку методом set_ylabel():

Python
Скопировать код
import numpy as np
import matplotlib.pyplot as plt

# Исходные данные испольуземые в примере:
x = np.linspace(0, 10, 100)
y1 = np.exp(x)  # Экспоненциальная зависимость
y2 = np.log(x + 1)  # Логарифмическая зависимость

fig, ax1 = plt.subplots()

# Первая ось Y и соответствующая метка
ax1.plot(x, y1, 'g-')
ax1.set_ylabel('Экспоненциальная зависимость', color='g')

# Добавление дополнительной оси Y и соответствующей метки
ax2 = ax1.twinx()
ax2.plot(x, y2, 'b-')
ax2.set_ylabel('Логарифмическая зависимость', color='b')

plt.show()

Форматирование меток осей

Сколько-нибудь заметное визуальное представление данных имеет огромное значение. Чтобы метки осей гармонировали с образом графика и легко воспринимались, можно настроить их цвет и размер:

Python
Скопировать код
ax1.set_ylabel('Экспоненциальная зависимость', color='g', fontsize=14)
ax2.set_ylabel('Логарифмическая зависимость', color='b', fontsize=14)

Согласование осей

Для полноценного функционирования обеих осей нельзя допускать противоречий между ними. Эту проблему можно решить, синхронизировав их масштаб и пределы:

Python
Скопировать код
ax1.set_ylim(0, 10000)
ax2.set_ylim(0, 10)

Интеграция с Pandas

Matplotlib легко интегрируется с Pandas. Датасеты из DataFrame можно отображать на графиках, воспользовавшись параметром secondary_y=True. Затем установите метку для второй оси с помощью right_ax.set_ylabel():

Python
Скопировать код
import pandas as pd

# Пусть `df` – это DataFrame в Pandas с колонками 'A' и 'B'
ax = df['A'].plot()
ax.set_ylabel('Обозначение основной оси')
ax2 = df['B'].plot(secondary_y=True)
ax2.right_ax.set_ylabel('Обозначение дополнительной оси')

Тонкие настройки: кастомизация

Ориентируйтесь на свои потребности при настройке метки:

Python
Скопировать код
ax2.set_ylabel('Доход, $', fontsize=12, color='darkgreen')

Если нужно взаимодействовать с текущей активной осью, воспользуйтесь plt.gca().twinx():

Python
Скопировать код
ax2 = plt.gca().twinx()

Визуализация

Представьте график из matplotlib как сценическую площадку для ваших данных:

Markdown
Скопировать код
Левая часть сцены 🎭: Основной график с своей меткой на оси Y.
Правая часть сцены 🎭: Вспомогательный график с меткой дополнительной оси Y.
Python
Скопировать код
# Основной график в центре событий
ax.set_ylabel('Преобладающая зависимость')

# Уже появляется вспомогательный график
ax2 = ax.twinx()
ax2.set_ylabel('Дополнительная зависимость')

Таким образом, зритель сразу сможет увидеть все аспекты вашего исследования.

Markdown
Скопировать код
Левая часть сцены 🎭: [Преобладающая зависимость] 📉
Правая часть сцены 🎭: [Дополнительная зависимость] 📈

Каждый график имеет свой неповторимый 'тембр', в результате чего становятся понятными все обозначения на осях Y, представленные вами.

Полезные материалы

  1. matplotlib.axes.Axes.twinx — Документация Matplotlib 3.8.2 – Изучите метод twinx() и станьте профи в работе с двумя осями Y.
  2. Дополнительная Ось — Документация Matplotlib 3.8.2 – Пошаговое руководство по работе с двумя осями.
  3. python – несколько осей в matplotlib с различной шкалой – Дискуссия на Stack Overflow о работе с несколькими осями Y в одном графике.
  4. Создание графиков с помощью Matplotlib на Python (Руководство) – Real Python – Советы от Real Python по созданию сложных графиков с использованием двух осей.
  5. matplotlib.axes — Документация Matplotlib 3.8.2 – Знакомство с методом set_ylabel откроет новые возможности для настройки обозначений осей.