Введение
В этом руководстве вы узнаете, как создать график с аннотациями с использованием Matplotlib в Python. Вы научитесь соединять две точки стрелкой, добавлять эллипс на график и настраивать стиль стрелки и свойства эллипса.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Настройка графика
Сначала нам нужно настроить график с двумя подграфиками. Мы будем использовать функцию subplots, чтобы создать сетку подграфиков размером 2x2, а затем определим координаты x и y двух точек.
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
fig, axs = plt.subplots(2, 2)
x1, y1 = 0.3, 0.3
x2, y2 = 0.7, 0.7
Соединить две точки стрелкой
В этом шаге мы соединим две точки стрелкой. Мы будем использовать функцию annotate для создания стрелки и настроим стиль и цвет стрелки.
ax = axs.flat[0]
ax.plot([x1, x2], [y1, y2], ".")
ax.annotate("",
xy=(x1, y1), xycoords='data',
xytext=(x2, y2), textcoords='data',
arrowprops=dict(arrowstyle="-",
color="0.5",
connectionstyle="arc3,rad=0.3",
),
)
Добавить эллипс на график
В этом шаге мы добавим эллипс на график. Мы будем использовать функцию Ellipse для создания эллипса и настроим свойства эллипса, такие как позиция, ширина, высота и угол.
ax = axs.flat[1]
ax.plot([x1, x2], [y1, y2], ".")
el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)
ax.add_artist(el)
Настроить стрелку для соединения с эллипсом
В этом шаге мы настроим стрелку для соединения с эллипсом. Мы будем использовать параметр arrowprops, чтобы указать, что стрелка должна соединяться с эллипсом, и также настроим стиль и цвет стрелки.
ax = axs.flat[2]
ax.plot([x1, x2], [y1, y2], ".")
el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)
ax.add_artist(el)
ax.annotate("",
xy=(x1, y1), xycoords='data',
xytext=(x2, y2), textcoords='data',
arrowprops=dict(arrowstyle="-",
color="0.5",
patchB=el,
connectionstyle="arc3,rad=0.3",
),
)
Настроить стрелку для сжатия до эллипса
В этом шаге мы настроим стрелку для сжатия до эллипса. Мы будем использовать параметр shrinkB, чтобы указать величину сжатия стрелки к эллипсу.
ax = axs.flat[3]
ax.plot([x1, x2], [y1, y2], ".")
el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)
ax.add_artist(el)
ax.annotate("",
xy=(x1, y1), xycoords='data',
xytext=(x2, y2), textcoords='data',
arrowprops=dict(arrowstyle="fancy",
color="0.5",
patchB=el,
shrinkB=5,
connectionstyle="arc3,rad=0.3",
),
)
Резюме
В этом руководстве вы узнали, как создавать график с аннотациями с использованием Matplotlib в Python. Вы узнали, как соединить две точки стрелкой, добавить эллипс на график и настроить стиль стрелки и свойства эллипса. Эти навыки будут полезны при создании информативных и визуально привлекательных графиков для визуализации данных.