参考了这篇博客园文章 https://www.cnblogs.com/luyi07/p/14919644.html
代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy import special
import mpl_toolkits.mplot3d.axes3d as axes3d
def sph_norm(PHI,THETA):
a=1
lam=7,
mux=np.array([0,1])
mux=mux/np.linalg.norm(mux)
X = np.sin(THETA) * np.cos(PHI)
Y = np.sin(THETA) * np.sin(PHI)
dd = X*mux[0]+mux[1]*Y
return a*np.exp(lam*(dd-1))
theta, phi = np.linspace(0, np.pi, 100), np.linspace(0, 2*np.pi, 100)
THETA, PHI = np.meshgrid(theta, phi)
#help(special.sph_harm)
R=sph_norm(THETA,PHI)
X = R * np.sin(THETA) * np.cos(PHI)
Y = R * np.sin(THETA) * np.sin(PHI)
Z = R * np.cos(THETA)
fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
plot