Введение
В этом практическом занятии показано, как использовать библиотеку Python Matplotlib для рисования эллипсов. В рамках практического занятия рассматриваются два примера:
- Рисование отдельных эллипсов
- Рисование эллипсов с разными углами
Вы можете открыть файл
ellipse-demo.ipynbв WebIDE, чтобы начать выполнение упражнений. Узнать, как использовать Jupyter Notebooks в VS Code.
Labby не может автоматически проверить ответы, так как не имеет доступа к ноутбуку.
Импорт необходимых библиотек
Сначала нам нужно импортировать необходимые библиотеки. Мы будем использовать numpy для генерации случайных данных, а matplotlib.pyplot и matplotlib.patches для рисования эллипсов.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse
Рисование отдельных эллипсов
В этом примере мы нарисуем множество эллипсов со случайными размерами, положениями и цветами. Каждый эллипс будет экземпляром класса Ellipse.
## Фиксация случайного состояния для воспроизводимости
np.random.seed(19680801)
## Количество эллипсов для рисования
NUM = 250
## Генерация эллипсов
ells = [Ellipse(xy=np.random.rand(2) * 10,
width=np.random.rand(), height=np.random.rand(),
angle=np.random.rand() * 360)
for i in range(NUM)]
## Создание графика и установка соотношения сторон как 'equal'
fig, ax = plt.subplots(subplot_kw={'aspect': 'equal'})
## Добавление каждого эллипса на график
for e in ells:
ax.add_artist(e)
e.set_clip_box(ax.bbox)
e.set_alpha(np.random.rand())
e.set_facecolor(np.random.rand(3))
## Установка пределов по осям x и y графика
ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
## Отображение графика
plt.show()
Рисование эллипсов с разными углами
В этом примере мы нарисуем множество эллипсов с разными углами. Мы будем использовать цикл для создания экземпляра Ellipse для каждого угла, который мы хотим нарисовать.
## Определение шага угла и диапазона углов для рисования
angle_step = 45 ## градусы
angles = np.arange(0, 180, angle_step)
## Создание графика и установка соотношения сторон как 'equal'
fig, ax = plt.subplots(subplot_kw={'aspect': 'equal'})
## Цикл по углам и рисование эллипса для каждого угла
for angle in angles:
ellipse = Ellipse((0, 0), 4, 2, angle=angle, alpha=0.1)
ax.add_artist(ellipse)
## Установка пределов по осям x и y графика
ax.set_xlim(-2.2, 2.2)
ax.set_ylim(-2.2, 2.2)
## Отображение графика
plt.show()
Итог
В этом практическом занятии мы научились использовать библиотеку Python Matplotlib для рисования эллипсов. Мы рассмотрели два примера: рисование отдельных эллипсов и рисование эллипсов с разными углами. Следуя шагам этого практического занятия, вы должны уметь рисовать эллипсы в своих собственных Python - проектах с использованием Matplotlib.