如何在 Matplotlib 中绘制 3D 圆

Hig*_*iga 2 python 3d plot matplotlib

我是 Python 初学者。我正在尝试使用 matplotlib 绘制与 Z 轴相切的圆。我知道如何在 3D 中绘制球体,但不知道如何在 3D 图中绘制圆/环。有人可以帮我解决代码吗?提前致谢!

gbo*_*ffi 5

您需要常规导入以及 3D 工具包

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

您需要一个支持 3D 的axes对象

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
Run Code Online (Sandbox Code Playgroud)

你需要一个包含在yz平面内的圆

theta = np.linspace(0, 2 * np.pi, 201)
y = 10*np.cos(theta)
z = 10*np.sin(theta)
Run Code Online (Sandbox Code Playgroud)

现在我们可以绘制原始圆,作为示例,绘制一些绕z轴旋转的圆,其圆心也放置在距z轴固定距离(等于圆的半径)处,因此它们是与它相切

for i in range(18):
    phi = i*np.pi/9
    ax.plot(y*np.sin(phi)+10*np.sin(phi),
            y*np.cos(phi)+10*np.cos(phi), z)
Run Code Online (Sandbox Code Playgroud)

最终我们放置一个垂直轴和一个图例

ax.plot((0,0),(0,0), (-10,10), '-k', label='z-axis')
ax.legend()
Run Code Online (Sandbox Code Playgroud)

是时候看看我们得到了什么了

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述