6.5. Добавление линий

Иногда бывает необходимо добавить на график вертикальную или горизонтальную линию. Это можно сделать с помощью методов Axes.vlines и Axes.hlines:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5, 5, 100)
y = (x - 2)*(x + 2)

fig, ax = plt.subplots()

ax.plot(x, y)
ax.grid()

#  Вертикальные линии:
ax.vlines(0, y.min(), y.max())
ax.vlines(-2, y.min(), y.max(), color = 'r')
ax.vlines(2, y.min(), y.max(), color = 'r')

#  Горизонтальные динии:
ax.hlines(0, -5, 5)
ax.hlines(-4, -5, 5)

plt.show()

Matplotlib lines

Данные методы имеют всего три ключевых аргумента. Для hlines() - это y - точка на оси y через которою пройдет горизонтальная линия; xmin - начало линии; xmax - конец линии. В качестве данных параметров могут выступать как числа, так и одномерные последовательности:

import numpy as np
import matplotlib.pyplot as plt

y = np.arange(10)

x_min = np.linspace(-10, 1, 10)
x_max = np.linspace(10, 1, 10)

fig, ax = plt.subplots()

ax.hlines(y, x_min, x_max)

plt.show()

Matplotlib lines: создание множества горизонтальных линий с помощью массива значений

Тоже самое можно сказать и о vlines(), только там параметры называются x, ymin и ymax:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)

y_min = np.linspace(-10, 1, 10)
y_max = np.linspace(1, 10, 10)

fig, ax = plt.subplots()

ax.vlines(x, y_min, y_max)

plt.show()

Matplotlib lines: создание множества вертикальных линий с помощью массива значений

Так же мы можем установить необходимый цвет линии, ее толщину и начертание:

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ax.vlines(-5, -10, 10,
          color = 'r',    #  цвет
          linewidth = 10,    #  ширина
          linestyle = ':')    #  начертание
ax.vlines(5, -10, 10,
          color = 'g',
          linewidth = 5,
          linestyle = '--')

ax.hlines(5, -10, 10,
          color = 'b',
          linewidth = 3,
          linestyle = '--')
ax.hlines(0, -10, 10,
          color = 'm',
          linewidth = 3,
          linestyle = ':')

fig.set_figwidth(8)
fig.set_figheight(8)

plt.show()

Matplotlib lines: цвет, ширина и начертание