Matplotlib — это мощная библиотека Python для создания визуализаций. Добавление горизонтальных и вертикальных линий на ваши графики может значительно улучшить читаемость, выделяя точки данных, пороговые значения или области интереса. В этой статье показаны два эффективных метода для достижения этого: использование axhline
/axvline
и hlines
/vlines
.
Содержание
Использование axhline
и axvline
Функции axhline
и axvline
предлагают простой способ добавить одну горизонтальную и вертикальную линии соответственно непосредственно к объекту осей Matplotlib. Они идеально подходят, когда линия должна охватывать весь график.
import matplotlib.pyplot as plt
import numpy as np
# Пример данных
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Создаем график
fig, ax = plt.subplots()
ax.plot(x, y)
# Добавляем горизонтальную линию при y = 0.5
ax.axhline(y=0.5, color='r', linestyle='--', linewidth=2)
# Добавляем вертикальную линию при x = 5
ax.axvline(x=5, color='g', linestyle='-', linewidth=1)
# Настраиваем внешний вид (необязательно)
ax.set_xlabel("Ось X")
ax.set_ylabel("Ось Y")
ax.set_title("Горизонтальные и вертикальные линии с axhline/axvline")
plt.show()
Этот код генерирует синусоиду и добавляет красную пунктирную горизонтальную линию при y = 0.5
и зеленую сплошную вертикальную линию при x = 5
. Вы можете настроить свойства линии, используя параметры, такие как color
, linestyle
, linewidth
, alpha
(прозрачность) и label
(для легенд).
Использование hlines
и vlines
Для большего контроля, особенно при построении нескольких линий или линий, охватывающих только часть осей, hlines
и vlines
обеспечивают большую гибкость. Они позволяют индивидуально указывать координаты y для горизонтальных линий и координаты x для вертикальных линий.
import matplotlib.pyplot as plt
import numpy as np
# Пример данных
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Создаем график
fig, ax = plt.subplots()
ax.plot(x, y)
# Добавляем несколько горизонтальных линий
ax.hlines(y=[0, 0.5, 1], xmin=0, xmax=10, colors=['b', 'r', 'g'], linestyles=['-', '--', ':'])
# Добавляем несколько вертикальных линий
ax.vlines(x=[2, 7], ymin=0, ymax=1, colors=['k', 'm'], linewidths=[2, 1])
# Настраиваем внешний вид (необязательно)
ax.set_xlabel("Ось X")
ax.set_ylabel("Ось Y")
ax.set_title("Горизонтальные и вертикальные линии с hlines/vlines")
plt.show()
В этом примере добавляются три горизонтальные линии с различными значениями y по всему диапазону x и две вертикальные линии в определенных координатах x, простирающиеся от ymin=0
до ymax=1
. Для указания нескольких линий используются списки. Обратите внимание на использование linewidths
для управления толщиной линий.
Заключение
И axhline
/axvline
, и hlines
/vlines
являются полезными инструментами для улучшения графиков Matplotlib. axhline
/axvline
проще для одиночных линий, охватывающих весь график, в то время как hlines
/vlines
предлагают большую гибкость для нескольких линий или линий с определенными начальными и конечными точками. Лучший выбор зависит от ваших потребностей в визуализации. Не забывайте подбирать стили и цвета линий для оптимальной читаемости.