Введение
Matplotlib - это библиотека Python, используемая для создания статических, анимированных и интерактивных визуализаций на Python. Одной из ключевых особенностей Matplotlib является ее способность создавать 2D и 3D графики всех типов и стилей, включая точечные диаграммы, линейные графики и столбчатые диаграммы. В этом практическом занятии вы научитесь создавать полярную кривую в прямоугольной области с использованием Matplotlib.
Советы по работе с ВМ
После запуска ВМ кликните в верхнем левом углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.
Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
В этом шаге мы импортируем необходимые библиотеки для создания полярной кривой. Для численного вычисления мы будем использовать numpy, а для создания графика - matplotlib.
import matplotlib.pyplot as plt
import numpy as np
Определяем полярные оси
В этом шаге мы определим полярные оси и зададим коэффициент масштабирования. Для определения полярных осей мы будем использовать PolarAxes.PolarTransform().
from matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D
## Define the polar axes
tr = Affine2D().scale(np.pi / 180., 1.) + PolarAxes.PolarTransform()
Определяем вспомогательный объект для сетки
В этом шаге мы определим вспомогательный объект для сетки, который будет использоваться для создания полярной кривой. Для определения вспомогательного объекта для сетки мы будем использовать GridHelperCurveLinear.
from mpl_toolkits.axisartist import GridHelperCurveLinear, HostAxes
import mpl_toolkits.axisartist.angle_helper as angle_helper
## Define the grid helper
extreme_finder = angle_helper.ExtremeFinderCycle(20,
20,
lon_cycle=360,
lat_cycle=None,
lon_minmax=None,
lat_minmax=(0, np.inf),
)
grid_locator1 = angle_helper.LocatorDMS(12)
tick_formatter1 = angle_helper.FormatterDMS()
grid_helper = GridHelperCurveLinear(tr,
extreme_finder=extreme_finder,
grid_locator1=grid_locator1,
tick_formatter1=tick_formatter1
)
Создаем основные оси
В этом шаге мы создадим основные оси и настроим вспомогательный объект для сетки. Для создания основных осей мы будем использовать fig.add_subplot().
## Create the host axes
fig = plt.figure(figsize=(5, 5))
ax1 = fig.add_subplot(axes_class=HostAxes, grid_helper=grid_helper)
Создаем плавающие оси
В этом шаге мы создадим две плавающие оси, которые будут использоваться для отображения полярной кривой в прямоугольном框。Для создания плавающих осей мы будем использовать new_floating_axis().
## Create the floating axes
ax1.axis["lat"] = axis = ax1.new_floating_axis(0, 60)
axis.label.set_text(r"$\theta = 60^{\circ}$")
axis.label.set_visible(True)
ax1.axis["lon"] = axis = ax1.new_floating_axis(1, 6)
axis.label.set_text(r"$r = 6$")
需注意,你原文中“rectangular box”表述不太准确,这里直接按字面翻译为“框”,你可根据实际情况调整。
Задаем пределы и отображаем сетку
В этом шаге мы зададим пределы для осей и отобразим сетку. Для установки соотношения сторон осей мы будем использовать set_aspect(), а для отображения сетки - grid().
## Set the limits and display the grid
ax1.set_aspect(1.)
ax1.set_xlim(-5, 12)
ax1.set_ylim(-5, 10)
ax1.grid(True)
Отображаем полярную кривую
В этом шаге мы отобразим полярную кривую в прямоугольном框。Для отображения графика мы будем использовать plt.show().
## Display the polar curve
plt.show()
需注意,你原文中“rectangular box”表述不太准确,这里直接按字面翻译为“框”,你可根据实际情况调整。
Резюме
В этом практическом занятии вы узнали, как создавать полярную кривую в прямоугольном框 с использованием Matplotlib. Вы узнали, как определить полярные оси и вспомогательный объект для сетки, создать основные оси, создать плавающие оси, задать пределы, отобразить сетку и отобразить полярную кривую. С этими знаниями вы можете создавать широкий спектр полярных кривых в прямоугольных框 с использованием Matplotlib.
需注意,你原文中“rectangular box”表述不太准确,这里直接按字面翻译为“框”,你可根据实际情况调整。