Введение
В этом практическом занятии вы научитесь рисовать эллипс с стрелкой ориентации с использованием Matplotlib. Эллипсы - это тип фигур, которые широко используются в визуализации данных для представления информации. Добавляя стрелку ориентации к эллипсу, вы можете предоставить дополнительную информацию о направлении данных.
Советы по использованию ВМ
После запуска виртуальной машины щелкните в верхнем левом углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем Matplotlib и создаем фигуру и оси
Сначала вам нужно импортировать Matplotlib и создать фигуру и оси. Фигура и оси - это контейнеры для вашего графика.
import matplotlib.pyplot as plt
## Create a figure and axis
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})
Создаем эллипс
Далее вам нужно создать эллипс с использованием класса Ellipse. Вы можете указать центр эллипса, ширину и высоту эллипса, а также угол вращения.
from matplotlib.patches import Ellipse
ellipse = Ellipse(
xy=(2, 4),
width=30,
height=20,
angle=35,
facecolor="none",
edgecolor="b"
)
ax.add_patch(ellipse)
Добавляем стрелку ориентации
Вы можете добавить стрелку ориентации к эллипсу, нанося маркер в конец малой оси. Вы можете использовать метод get_co_vertices() для получения координат вершин эллипса. Затем вы можете использовать класс Affine2D() для вращения маркера, чтобы он соответствовал углу эллипса.
from matplotlib.markers import MarkerStyle
from matplotlib.transforms import Affine2D
## Plot an arrow marker at the end point of minor axis
vertices = ellipse.get_co_vertices()
t = Affine2D().rotate_deg(ellipse.angle)
ax.plot(
vertices[0][0],
vertices[0][1],
color="b",
marker=MarkerStyle(">", "full", t),
markersize=10
)
Разворачиваем стрелку ориентации
Если вы хотите развернуть стрелку ориентации, вы можете поменять тип маркера с > на <.
## To reverse the orientation arrow, switch the marker type from > to <.
ax.plot(
vertices[0][0],
vertices[0][1],
color="b",
marker=MarkerStyle("<", "full", t),
markersize=10
)
Отображаем график
Наконец, вы можете отобразить график с использованием метода show().
plt.show()
Резюме
Поздравляем! Вы узнали, как рисовать эллипс с стрелкой ориентации с использованием Matplotlib. Эта техника может быть полезна для визуализации данных, имеющих направление.