如何获取球体的坐标?
我想知道这个图的所有坐标:
来源: http://matplotlib.org/examples/mplot3d/surface3d_demo2.html
来源: https://stackoverflow.com/a/11156353/3755171
并把它画成一个点的球体(只考虑其中一个,我找不到那种):
或者矩阵也可以。
当我尝试绘制上面提到的图时,我得到了:
我的代码
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
#ax = fig.add_subplot(111, projection='3d')
ax = Axes3D(fig)
u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
x=np.cos(u)*np.sin(v)
y=np.sin(u)*np.sin(v)
z=np.cos(v)
#ax.plot_wireframe(x, y, z, color="r")
#ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
ax.plot(x,y,z,"o")
plt.show()
1 个回答
2
如果你把调用 plot
的地方换成 scatter
,就可以重新创建一个完全由点组成的球体。详细信息可以查看文档 这里。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
#ax = fig.add_subplot(111, projection='3d')
ax = Axes3D(fig)
u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
x=np.cos(u)*np.sin(v)
y=np.sin(u)*np.sin(v)
z=np.cos(v)
#ax.plot_wireframe(x, y, z, color="r")
#ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
ax.scatter(x,y,z,"o")
plt.show()