Создание многоугольника в Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

Советы по работе с ВМ

После завершения запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем необходимые библиотеки

Прежде чем начать работать с Matplotlib, нам нужно импортировать необходимые библиотеки. В этом лабораторном задании мы будем использовать matplotlib.pyplot и matplotlib.widgets.

import matplotlib.pyplot as plt
from matplotlib.widgets import PolygonSelector

Создание многоугольника программно

Для создания многоугольника программно нам нужно создать объект Figure и объект Axes. Затем мы можем создать объект PolygonSelector и добавить вершины в него. Наконец, мы можем нарисовать многоугольник на Axes.

fig, ax = plt.subplots()
selector = PolygonSelector(ax, lambda *args: None)

## Add three vertices
selector.verts = [(0.1, 0.4), (0.5, 0.9), (0.3, 0.2)]

## Plot the polygon
ax.add_patch(plt.Polygon(selector.verts, alpha=0.3))
plt.show()

Создание многоугольника интерактивно

Для создания многоугольника интерактивно нам нужно создать объект Figure и объект Axes. Затем мы можем создать объект PolygonSelector и добавить вершины в него, щелкая по графику. Мы также можем использовать клавиши shift и ctrl для перемещения вершин.

fig, ax = plt.subplots()
selector = PolygonSelector(ax, lambda *args: None)

print("Click on the figure to create a polygon.")
print("Press the 'esc' key to start a new polygon.")
print("Try holding the 'shift' key to move all of the vertices.")
print("Try holding the 'ctrl' key to move a single vertex.")

plt.show()

Собираем все вместе

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

import matplotlib.pyplot as plt
from matplotlib.widgets import PolygonSelector

## Create a figure and axes
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(10, 5))

## Create a PolygonSelector object and add vertices
selector1 = PolygonSelector(ax1, lambda *args: None)
selector1.verts = [(0.1, 0.4), (0.5, 0.9), (0.3, 0.2)]

## Plot the polygon
ax1.add_patch(plt.Polygon(selector1.verts, alpha=0.3))

## Create another PolygonSelector object for interactive creation
selector2 = PolygonSelector(ax2, lambda *args: None)

print("Click on the figure to create a polygon.")
print("Press the 'esc' key to start a new polygon.")
print("Try holding the 'shift' key to move all of the vertices.")
print("Try holding the 'ctrl' key to move a single vertex.")

plt.show()

Резюме

В этой лабораторной работе мы узнали, как создавать многоугольник программно и интерактивно с использованием Matplotlib. Мы также узнали, как добавлять вершины в объект PolygonSelector и нарисовать полученный многоугольник на Axes. Эти знания могут быть полезны для выделения областей интереса или для скрытия определенных областей на графике.