October 3, 2021

3 полезные возможности Matplotlib, которые украсят ваш график

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

Вертикальные и горизонтальные линии

Так, зачастую основные элементы на картинках удобно дополнять некоторыми базовыми ориентирами, в числе которых линии, обозначающие, например, средние значения, результаты случайных угадываний.. Этот функционал можно реализовать напрямую с помощью plot, передав ей координаты нужных точек, либо использовать специальные функции vlines и hlines для нанесения вертикальных и горизонтальных прямых:

import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
fig, ax = plt.subplots(1, 2, figsize=(5, 5))
ax[0].plot([-1, 1], [1, 1])
ax[1].hlines(1, -1, 1)
fig, ax = plt.subplots(1, 2, figsize=(5, 5))
ax[0].plot([1, 1], [-1, 1])
ax[1].vlines(1, -1, 1)

hlines достаточно задать постоянное значение по y, а также начальный и конечный x, а vlines - постоянный x, а также начальный и конечный y. С помощью данных функций можно нанести на график сразу несколько прямых - для этого в первом параметре следует передать список постоянных по y или x:

Простейшие фигуры

С помощью Matplotlib можно быстро нарисовать стандартные фигуры, которые называются патчами (часть из них, например Rectangle и Circle, располагается в подмодуле pyplot, а весь набор – в matplotlib.patches). Для добавления фигуры к рисунку следует вызвать метод add_patch. Рассмотрим процесс добавления прямоугольника (объект Rectangle, задается через координаты левой нижней точки, а также ширины и высоты) и круга (Circle, определяется координатами центра и радиусом):

fig, ax = plt.subplots(1, 1, figsize=(5, 5))
ax.add_patch(plt.Rectangle((-1,-1),2,2, alpha=0.3))
ax.add_patch(plt.Circle((0,0),1, alpha=0.6))
ax.set_xlim(-1.5,1.5)
ax.set_ylim(-1.5,1.5)