python - 使用 Matplotlib 在球体上绘制螺旋连接的点

标签 python matplotlib

我想使用 Matplotlib 绘制一个表面有点的球体。这些点应通过从球体的一侧螺旋到另一侧的螺旋连接。 为了澄清这一点,情节应该或多或少看起来像这样:Sphere with points and spiral 有人知道如何做到这一点吗?

最佳答案

需要知道螺旋参数、公式或点集。

但是,我发布了一个代码,用于在球体上绘制一 strip 有标记的线,以便您开始:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_aspect('equal')

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 1 * np.outer(np.cos(u), np.sin(v))
y = 1 * np.outer(np.sin(u), np.sin(v))
z = 1 * np.outer(np.ones(np.size(u)), np.cos(v))
elev = 10.
rot = 80. / 180. * np.pi
ax.plot_surface(x, y, z,  rstride=1, cstride=1, color='y', linewidth=0, alpha=0.5)

# plot lines in spherical coordinates system
a = np.array([-np.sin(elev / 180 * np.pi), 0, np.cos(elev / 180 * np.pi)])
b = np.array([0, 1, 0])
b = b * np.cos(rot) + np.cross(a, b) * np.sin(rot) + a * np.dot(a, b) * (1 - np.cos(rot))
ax.plot(np.sin(u),np.cos(u),0,color='r', linestyle = '-', marker='o', linewidth=2.5)

ax.view_init(elev = elev, azim = 0)
plt.show()

enter image description here

关于python - 使用 Matplotlib 在球体上绘制螺旋连接的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520781/

相关文章:

python - 在立方体上绘制曲面

python - 如何使用 matplotlib 在 python 中绘制时间戳?

python - 从 python 发起 SSH 隧道的问题

python - "None"显示对象 Django 的名称

python - 在 sqlalchemy 中,如何获取与表中所有行匹配的查询,以便另一个表中没有行链接到它?

python - 连接两个 Pandas .HDFStore HDF5文件

python - Django uWSGI 创建日志文件但该文件为空(适用于开发服务器)

python - 实时更新连续函数

python - 获取 Matplotlib 图例位置?

python - 在一张图片中结合 sympy 和 matplotlib 图