使用 Matplotlib 创建极坐标图

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Matplotlib 是一个用于在 Python 中创建静态、动画和交互式可视化效果的 Python 库。Matplotlib 的一个关键特性是它能够创建各种类型和样式的二维和三维图形,包括散点图、折线图和柱状图。在本实验中,你将学习如何使用 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

## 定义极坐标轴
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

## 定义网格辅助器
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() 来创建宿主坐标轴。

## 创建宿主坐标轴
fig = plt.figure(figsize=(5, 5))
ax1 = fig.add_subplot(axes_class=HostAxes, grid_helper=grid_helper)

创建浮动坐标轴

在这一步中,我们将创建两个浮动坐标轴,用于在矩形框中显示极坐标曲线。我们将使用 new_floating_axis() 来创建浮动坐标轴。

## 创建浮动坐标轴
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$")

设置界限并显示网格

在这一步中,我们将设置坐标轴的界限并显示网格。我们将使用 set_aspect() 来设置坐标轴的纵横比,使用 grid() 来显示网格。

## 设置界限并显示网格
ax1.set_aspect(1.)
ax1.set_xlim(-5, 12)
ax1.set_ylim(-5, 10)
ax1.grid(True)

显示极坐标曲线

在这一步中,我们将在矩形框中显示极坐标曲线。我们将使用 plt.show() 来显示绘图。

## 显示极坐标曲线
plt.show()

总结

在本实验中,你学习了如何使用Matplotlib在矩形框中创建极坐标曲线。你学习了如何定义极坐标轴和网格辅助器,创建宿主坐标轴,创建浮动坐标轴,设置界限,显示网格以及显示极坐标曲线。有了这些知识,你可以使用Matplotlib在矩形框中创建各种各样的极坐标曲线。