Рисование фигур с использованием Matplotlib в Python

Beginner

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

Введение

В этом практическом занятии мы научимся рисовать различные фигуры с использованием библиотеки Matplotlib в Python. Matplotlib - это библиотека для построения графиков для языка программирования Python и его расширения для численных вычислений NumPy. Она предоставляет объектно-ориентированный API для встраивания графиков в приложения с использованием общих целевых средств графического интерфейса, таких как Tkinter, wxPython, Qt или GTK.

Советы по использованию ВМ

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

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

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

Импорт библиотек

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

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

Определение фигур

Мы определим фигуры, которые хотим нарисовать с использованием Matplotlib. В этом примере мы нарисуем круг, прямоугольник, сектор, правильный многоугольник, эллипс, стрелку, путь-пач (path patch) и фэнси-бокс-пач (fancy box patch).

shapes = [
    mpatches.Circle((0, 0), 0.1, ec="none"),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none"),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none"),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1),
    mpatches.Ellipse((0, 0), 0.2, 0.1),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none"),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none",
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

Нарисовать фигуры

Теперь мы нарисуем фигуры с использованием Matplotlib, пройдя по списку shapes и добавив их на график.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

Настроить фигуры

Мы можем настроить фигуры, установив различные свойства, такие как цвет, цвет контура и альфа-канал.

shapes = [
    mpatches.Circle((0, 0), 0.1, color='red', alpha=0.5),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none", color='green', alpha=0.5),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none", color='blue', alpha=0.5),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1, color='orange', alpha=0.5),
    mpatches.Ellipse((0, 0), 0.2, 0.1, color='purple', alpha=0.5),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1, color='yellow', alpha=0.5),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none", color='pink', alpha=0.5),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none", color='brown', alpha=0.5,
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

Сохранить график

Мы можем сохранить график в виде изображения с помощью функции savefig.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.savefig('shapes.png')

Резюме

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