Добавление горизонтальной линии на график в Python

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

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

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

Для рисования горизонтальной линии на графике воспользуйтесь функцией plt.axhline() из библиотеки matplotlib:

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

# Предполагаем, что график уже создан
# plt.plot(...)

plt.axhline(y=<значение>, color='<цвет>', linestyle='<стиль>')
plt.show()

В данном коде <значение> указывает координату по оси Y для расположения линии, <цвет> задает цвет линии (например, 'r' для красного), <стиль> определяет стиль линии (например, '--' для пунктирной). Таким образом, вы сможете добавить стилизованную горизонтальную линию на требуемой высоте.

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

Углубляемся в тему

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

Настройка линии

Функция plt.axhline() отлично работает с любым типом графиков. Если вы привыкли к объектным интерфейсам, то метод ax.hlines() предложит больше вариантов для настройки:

Python
Скопировать код
fig, ax = plt.subplots()
ax.hlines(y=2.5, xmin=0, xmax=10, colors='green', linestyles='dashdot')
# Мы заботимся о природе, даже наш код 'зеленый'

Линии на временных рядах и столбчатых диаграммах

Временные ряды и столбчатые диаграммы имеют свои особенности. Убедитесь, что параметры xmin и xmax во временных рядах соответствуют объектам datetime, чтобы горизонтальная линия корректно совпадала с временными интервалами.

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

Интеграция с pandas и seaborn

С DataFrame Pandas возможно вызвать метод .axhline() непосредственно после создания графика:

Python
Скопировать код
df.plot(kind='line')
plt.axhline(y=2.5, color='purple', linestyle='-')
# Purple rain, purple line...

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

Устраняем сложности

Сглаживание линий

Быть идеально гладким – это не только отсылка к Sade; кривые на графике иногда требуют сглаживания. Если вы хотите показать тренды или закономерности, рассмотрите возможность использования UnivariateSpline из scipy в сочетании с массивами numpy.

Осмысленные комментарии

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

Контроль границ оси Y

Правильная настройка границ оси Y важна для того, чтобы они включали ваши горизонтальные линии. Воспользуйтесь функцией pylab.ylim() или методом set_ylim() осевого объекта для корректировки.

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

Рассмотрим пример: выборку данных на графике представим в виде свежеприготовленного яблочного пирога:

Markdown
Скопировать код
Данные: [1\.1, 2.3, 3.0, 2.7, 1.8, 3.3]

Добавим постоянную горизонтальную линию:

Python
Скопировать код
plt.axhline(y=2.5, color='r', linestyle='-')  # Рисуем алую линию на уровне y=2.5

Вот как это выглядит:

Markdown
Скопировать код
         |    🍏   |
         |  🍎     |
         |         |  🍏
 ________|🍒🍒🍒🍒🍒🍒|________
         |         |    🍎 
         |  🍏     |
         |    🍏   |

# Великолепная алая линия на уровне y=2.5, представляющая среднюю величину наших данных.

Горизонтальная линия служит опорной точкой для сравнения различных данных.

Применяйте эти советы и приемы

Несколько линий

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

Python
Скопировать код
plt.hlines(y=[1\.5, 2.5, 3.5], xmin=0, xmax=len(data)-1, colors=['pink', 'red', 'maroon'])
# Забудьте о светофорах, вот истинные бутоны анализа данных!

Детальный контроль над осями

Для данных с переменной осью X создайте массив numpy нужного размера, чтобы корректно отобразить xmin и xmax.

Обращайтесь за помощью

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

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

  1. matplotlib.axes.Axes.axhline — документация Matplotlib 3.8.2официальная документация на axhline от Matplotlib.
  2. Визуализация графиков — документация pandas 2.2.0 — инструкции по интеграции рисования горизонтальных линий в Pandas.
  3. seaborn.lineplot — документация seaborn 0.13.2 — стратегии улучшения визуализации данных с помощью горизонтальных линий в Seaborn.
  4. Линейный график — примеры того, как добавить горизонтальную линию к линейному графику.
  5. matplotlib.pyplot.axhline() в Python – GeeksforGeeksруководство по использованию функции plt.axhline() для рисования горизонтальных линий.