CODE:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=Axes3D(fig) # 建立三维立体坐标系
# X,Y value
X=np.arange(-4,4,0.25)
Y=np.arange(-4,4,0.25)
X,Y=np.meshgrid(X,Y)
R=np.sqrt(X**2+Y**2)
#height value
Z=np.cos(R)
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow')) #rowstride,coloumstride surface表面小方块的跨度(行跨和列跨)
edgecolor='black'
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow') # zdir='z'表示从Z轴投影到XOY offset=-2投影面离XOY面的距离
ax.set_zlim(-2,2)
plt.show()
RESULT: