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

PythonPythonBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Этот туториал предназначен для того, чтобы показать пользователям, как создавать круги, секторы и многоугольники с использованием Python Matplotlib. Пользователи также смогут использовать .collections.PatchCollection для визуализации созданных фигур.

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

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

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

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

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

Во - первых, нам нужно импортировать необходимые библиотеки.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle, Polygon, Wedge

Создаем фигуру и ось

Мы создаем фигуру и ось для построения фигур.

fig, ax = plt.subplots()

Определяем количество вершин и количество фигур

Мы определяем количество вершин и количество создаваемых фигур.

resolution = 50  ## the number of vertices
N = 3

Создаем круги

Мы создаем круги с использованием Circle() и добавляем их в список патчей.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
patches = []
for x1, y1, r in zip(x, y, radii):
    circle = Circle((x1, y1), r)
    patches.append(circle)

Создаем секторы

Мы создаем секторы с использованием Wedge() и добавляем их в список патчей.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
theta1 = 360.0*np.random.rand(N)
theta2 = 360.0*np.random.rand(N)
for x1, y1, r, t1, t2 in zip(x, y, radii, theta1, theta2):
    wedge = Wedge((x1, y1), r, t1, t2)
    patches.append(wedge)

Добавляем ограничительные условия для секторов

Мы добавляем ограничительные условия для секторов.

patches += [
    Wedge((.3,.7),.1, 0, 360),             ## Full circle
    Wedge((.7,.8),.2, 0, 360, width=0.05),  ## Full ring
    Wedge((.8,.3),.2, 0, 45),              ## Full sector
    Wedge((.8,.3),.2, 45, 90, width=0.10),  ## Ring sector
]

Создаем полигоны

Мы создаем полигоны с использованием Polygon() и добавляем их в список патчей.

for i in range(N):
    polygon = Polygon(np.random.rand(N, 2), closed=True)
    patches.append(polygon)

Задаем цвета и создаем PatchCollection

Мы задаем цвета фигур и создаем PatchCollection().

colors = 100 * np.random.rand(len(patches))
p = PatchCollection(patches, alpha=0.4)
p.set_array(colors)
ax.add_collection(p)
fig.colorbar(p, ax=ax)

Отображаем график

Мы отображаем график.

plt.show()

Резюме

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