import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(12, 6))
ax = Axes3D(fig)
fig.add_axes(ax)
X,Y = np.mgrid[20:-20:100j, 20:-20:100j]
Z = (np.sin(np.sqrt(X**2+Y**2))/np.sqrt(X**2+Y**2))
surf = ax.plot_surface(X, Y, Z, rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
ax.set_zlim(-0.5, 1)
plt.title("sin(sqrt(x^2+y^2)/sqrt(x^2+y^2)")
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
运行结果: