Добавление легенды на график в Matplotlib

Добавление легенды к графикам в Matplotlib помогает лучше интерпретировать данные, особенно когда на графике отображается несколько серий данных. В Matplotlib вы можете добавлять и настраивать легенды с помощью функции legend() из модуля pyplot. Рассмотрим различные способы использования этой функции и настройки легенд на графиках.

Основные способы добавления легенды

Добавление легенды с помощью label и legend()

Наиболее простой способ добавления легенды — использовать параметр label в функции построения графика и вызвать legend() для отображения легенды.

Пример:

import matplotlib.pyplot as plt

# Данные
x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [15, 22, 24, 32]

# Построение графиков
plt.plot(x, y1, label='Series 1', color='blue', marker='o')
plt.plot(x, y2, label='Series 2', color='red', marker='x')

# Настройка легенды
plt.legend()  # Отображение легенды

plt.title("Line Plot with Legend")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()

Результат: Легенда отображает названия серий данных, указанные в параметре label.

Настройка расположения легенды

Вы можете настроить расположение легенды с помощью параметра loc в функции legend(). Возможные значения:

  • 'upper right'

  • 'upper left'

  • 'lower left'

  • 'lower right'

  • 'best' (автоматический выбор оптимального места)

Пример:

import matplotlib.pyplot as plt

# Данные
x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [15, 22, 24, 32]

# Построение графиков
plt.plot(x, y1, label='Series 1', color='blue', marker='o')
plt.plot(x, y2, label='Series 2', color='red', marker='x')

# Настройка легенды
plt.legend(loc='upper left')  # Расположение легенды в верхнем левом углу

plt.title("Line Plot with Legend")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()

Изменение внешнего вида легенды

Вы можете настроить внешний вид легенды, включая размер шрифта, стиль и прозрачность.

Пример:

import matplotlib.pyplot as plt

# Данные
x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [15, 22, 24, 32]

# Построение графиков
plt.plot(x, y1, label='Series 1', color='blue', marker='o')
plt.plot(x, y2, label='Series 2', color='red', marker='x')

# Настройка легенды
plt.legend(loc='upper left', fontsize='large', shadow=True, fancybox=True)

plt.title("Line Plot with Customized Legend")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()

Параметры:

  • fontsize — размер шрифта в легенде.

  • shadow — добавление тени.

  • fancybox — округление границ легенды.

Легенда с использованием bbox_to_anchor

Функция bbox_to_anchor позволяет точнее позиционировать легенду, указывая координаты для привязки.

Пример:

import matplotlib.pyplot as plt

# Данные
x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [15, 22, 24, 32]

# Построение графиков
plt.plot(x, y1, label='Series 1', color='blue', marker='o')
plt.plot(x, y2, label='Series 2', color='red', marker='x')

# Настройка легенды с использованием bbox_to_anchor
plt.legend(loc='upper left', bbox_to_anchor=(1, 1))  # Легенда будет расположена справа от графика

plt.title("Line Plot with Legend Outside Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()

Параметр bbox_to_anchor:

  • (1, 1) — координаты, куда будет привязана легенда относительно графика (в данном случае, сразу за пределами правого верхнего угла графика).

Легенда для нескольких подграфиков

При использовании нескольких подграфиков (subplots), легенды могут быть добавлены к каждому подграфику.

Пример:

import matplotlib.pyplot as plt

# Данные
x = [1, 2, 3, 4]
y1 = [10, 20, 25, 30]
y2 = [15, 22, 24, 32]

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

# Построение графиков
axs[0].plot(x, y1, label='Series 1', color='blue', marker='o')
axs[0].plot(x, y2, label='Series 2', color='red', marker='x')
axs[0].legend(loc='upper left')
axs[0].set_title("Subplot 1")

axs[1].plot(x, y1, label='Series 1', color='blue', marker='o')
axs[1].plot(x, y2, label='Series 2', color='red', marker='x')
axs[1].legend(loc='upper left')
axs[1].set_title("Subplot 2")

plt.tight_layout()
plt.show()

Результат: Два подграфика, каждый с собственной легендой.

Заключение

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

Last updated