简介
本实验是一份使用 Python Matplotlib 库通过极坐标创建 3D 曲面的分步指南。本实验假定你具备 Python 编程和 Matplotlib 库的基础知识。
虚拟机提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签页以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。
导入所需库
我们将首先导入本实验所需的库,其中包括 Matplotlib 和 NumPy。Matplotlib 是一个用于 Python 的绘图库,而 NumPy 是一个用于 Python 编程语言的库,它增加了对大型多维数组和矩阵的支持。
import matplotlib.pyplot as plt
import numpy as np
创建网格
接下来,我们将在极坐标中创建网格并计算相应的 Z 值。我们将创建一个半径值数组 r,一个角度值数组 p,然后使用 NumPy 的 meshgrid() 函数创建 R 和 P 值的网格。最后,我们将使用 Z 方程来计算曲面上每个点的高度。
r = np.linspace(0, 1.25, 50)
p = np.linspace(0, 2*np.pi, 50)
R, P = np.meshgrid(r, p)
Z = ((R**2 - 1)**2)
在笛卡尔坐标系中表示网格
现在,我们将使用 NumPy 的 cos() 和 sin() 函数在笛卡尔坐标系中表示网格。
X, Y = R*np.cos(P), R*np.sin(P)
绘制曲面
在这一步中,我们将使用 Matplotlib 的 plot_surface() 函数绘制曲面。我们将使用 YlGnBu_r 颜色映射来设置曲面的颜色。
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.plot_surface(X, Y, Z, cmap=plt.cm.YlGnBu_r)
调整界限并添加标签
最后,我们将使用 Matplotlib 的 set_zlim() 以及 set_xlabel()、set_ylabel()、set_zlabel() 函数来调整绘图的界限并添加轴标签。我们还将使用 LaTeX 数学模式来书写轴标签。
ax.set_zlim(0, 1)
ax.set_xlabel(r'$\phi_\mathrm{real}$')
ax.set_ylabel(r'$\phi_\mathrm{im}$')
ax.set_zlabel(r'$V(\phi)$')
总结
在本实验中,我们学习了如何使用 Python 的 Matplotlib 库通过极坐标创建三维曲面。我们首先导入所需的库,在极坐标中创建网格,在笛卡尔坐标系中表示该网格,绘制曲面,最后调整界限并添加轴标签。