JavaRush /Курсы /Python SELF /Настройка подписей, легенд и осей для улучшения восприяти...

Настройка подписей, легенд и осей для улучшения восприятия графиков

Python SELF
42 уровень , 0 лекция
Открыта

1. Важность аннотирования графиков

Почему важно добавлять подписи, легенды и аннотации к графикам

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

Вы можете задаться вопросом: неужели подписи и легенды настолько важны? Ответ прост: они — как соль и перец для графика. Без них ваш график может стать трудно читаемым, а смысл данных может затеряться. Используя аннотации, мы придаём графику дополнительный смысл и делаем его более интуитивно понятным.

Подписи и легенды помогают вашим зрителям быстро понять, что они видят. Представьте, что вы смотрите на карту сокровищ без указателей и вас сразу просят найти путь к кладам. Похоже на сумасшествие, верно? То же самое происходит с графиками без подписей. Мы должны помогать зрителям, а не усложнять их жизнь.

А теперь давайте более подробно рассмотрим, как добавлять магию аннотаций в ваши графики с помощью Python и Matplotlib. Готовы? Тогда начнем!

2. Подписи осей

Управление подписями осей с помощью xlabel, ylabel и title

Первый шаг — это названия осей. Процесс прост, как дважды два. Используем функции xlabel() и ylabel() для добавления подписей к осям X и Y, соответственно. А для заголовка графика используем title(). Эти функции делают график более структурированным и понятным. Вот простой пример:

Python

import matplotlib.pyplot as plt

# Данные
x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 4, 9, 16, 25]

# Создание графика
plt.plot(x, y, color='blue')

# Добавление подписей
plt.xlabel('Время (часы)', color='red')
plt.ylabel('Расстояние (км)', color='green')
plt.title('Рост расстояния с течением времени', color='gold')

# Показ графика
plt.show()

Так же можно расскрасить текст и график в любимые цвета:

Настройка шрифта и размера подписей

Чтобы сделать график более привлекательным, можно изменить размер, цвет и стиль шрифта подписей. В Matplotlib это можно сделать с помощью параметров fontsize, fontweight, color и других.

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)

# Настройка заголовка и подписей с параметрами
plt.title("Пример графика", fontsize=16, fontweight="bold", color="navy")
plt.xlabel("Значения X", fontsize=12, color="darkred")
plt.ylabel("Значения Y", fontsize=12, color="darkred")

plt.show()

В этом примере:

  • fontsize задает размер шрифта.
  • fontweight="bold" делает текст жирным.
  • color изменяет цвет текста.

3. Отображение "легенды"

Добавление и настройка легенды с помощью функции legend()

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

Python

# Данные
x = [0, 1, 2, 3, 4, 5]
y1 = [0, 1, 4, 9, 16, 25]
y2 = [0, 1, 2, 3, 4, 5]

# Создание графика
plt.plot(x, y1, label='Квадрат числа')
plt.plot(x, y2, label='Сама величина')

# Добавление подписей
plt.xlabel('Время (часы)')
plt.ylabel('Расстояние (км)')
plt.title('Сравнение функции')

# Добавление легенды
plt.legend(loc='upper left')

# Показ графика
plt.show()

Вызов legend() добавляет легенду в то место, которое вы указали. Аргумент loc можно заменить на 'best', чтобы Питон сам выбрал удобное место (ага, искусственный интеллект тоже задействован).

Позиция легенды

Вы можете изменить положение легенды, используя параметр loc. Например:

  • loc="upper right" — верхний правый угол (по умолчанию).
  • loc="upper left" — верхний левый угол.
  • loc="lower right" — нижний правый угол.
  • loc="center" — центр.
Python

plt.legend(loc="upper left")

Настройка размеров и цвета легенды

Вы можете настроить размер шрифта и цвета легенды с помощью параметров fontsize, facecolor и edgecolor.

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [10, 15, 20, 25, 30]
y2 = [5, 10, 15, 20, 25]

plt.plot(x, y1, label="Линия 1", color="blue")
plt.plot(x, y2, label="Линия 2", color="green")

plt.title("График с настраиваемой легендой")
plt.xlabel("Значения X")
plt.ylabel("Значения Y")

# Настройка легенды
plt.legend(loc="upper left", fontsize=10, facecolor="lightgray", edgecolor="black")

plt.show()

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

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

Изменение диапазона осей

Функции xlim() и ylim() позволяют задать минимальные и максимальные значения для осей.

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("Значения X")
plt.ylabel("Значения Y")
plt.xlim(0, 6)  # Диапазон оси X от 0 до 6
plt.ylim(5, 35)  # Диапазон оси Y от 5 до 35

plt.show()

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

С помощью функции xticks() и yticks() можно задать пользовательские метки для осей.

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("Значения X")
plt.ylabel("Значения Y")

# Настройка меток оси X
plt.xticks([1, 2, 3, 4, 5], ["Один", "Два", "Три", "Четыре", "Пять"])
plt.show()

Добавление сетки на график

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

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("Значения X")
plt.ylabel("Значения Y")
plt.grid(True)  # Добавление сетки

plt.show()

С помощью plt.grid(True) добавляется стандартная сетка. Можно также настроить её стиль, используя параметры color, linestyle и linewidth.

Python

plt.grid(color="gray", linestyle="--", linewidth=0.5)

5. Добавление аннотаций на график

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

Добавление аннотации

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("Значения X")
plt.ylabel("Значения Y")

# Добавление аннотации
plt.annotate("Максимум", xy=(5, 30), xytext=(3, 30),
             arrowprops=dict(facecolor="black", shrink=0.05))

plt.show()

В этом примере:

  • xy=(5, 30) указывает координаты точки, которую мы аннотируем.
  • xytext=(3, 30) указывает положение текста.
  • arrowprops добавляет стрелку, указывающую на точку.

6. Примеры улучшения графиков

Переходим к практике! Давайте посмотрим, как добавление аннотаций улучшает график.

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

Python

import matplotlib.pyplot as plt

# Месяцы и продажи
months = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь']
sales_product1 = [100, 120, 130, 150, 170, 190]
sales_product2 = [90, 110, 115, 140, 165, 180]

# Построение графика
plt.plot(months, sales_product1, marker='o', label='Продукт 1')
plt.plot(months, sales_product2, marker='s', label='Продукт 2')

# Аннотирование
plt.xlabel('Месяцы')
plt.ylabel('Продажи (шт.)')
plt.title('Рост продаж по продуктам')
plt.legend(loc='upper left')

# Настройка аннотаций
for i, txt in enumerate(sales_product1):
    plt.annotate(txt, (months[i], sales_product1[i]), textcoords="offset points", xytext=(0,10), ha='center')

for i, txt in enumerate(sales_product2):
    plt.annotate(txt, (months[i], sales_product2[i]), textcoords="offset points", xytext=(0,10), ha='center')

# Показ графика
plt.show()

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

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

Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 64
31 июля 2025
Слишком много мусора в заданиях
Vlad Tagunkov Уровень 55
17 января 2025
"Это как приёмник у телевизора: без него вроде бы всё на месте, но смотреть тяжело, потому что картинка не всегда ясна." - 😂 это если нет внешней антенны у телевизора, а не приемника. Нет приемника - нет картинки(вообще нет), ну вернее она есть но это серый экран с помехами.