Создайте полярные диаграммы с использованием Matplotlib

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

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

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

Введение

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”表述不太准确,这里直接按字面翻译为“框”,你可根据实际情况调整。