unutbu..
8
下面的代码非常类似于Matplotlib画廊的3D极坐标图.唯一的区别是你np.meshgrid用来制作2D数组PHI而THETA 不是R和THETA(或者3D极图的示例调用P).
这个故事的寓意是,只要X,Y和Z可以表示为两个参数(平滑)功能,plot_surface可绘制.
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as axes3d
theta, phi = np.linspace(0, 2 * np.pi, 40), np.linspace(0, np.pi, 40)
THETA, PHI = np.meshgrid(theta, phi)
R = np.cos(PHI**2)
X = R * np.sin(PHI) * np.cos(THETA)
Y = R * np.sin(PHI) * np.sin(THETA)
Z = R * np.cos(PHI)
fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
plot = ax.plot_surface(
X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('jet'),
linewidth=0, antialiased=False, alpha=0.5)
plt.show()
产量
</