- 导入模块
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D
- 构建数据和函数
np.meshgrid(): 创建坐标网格
#创建数据,构建网格X = np.arange(-4, 4, 0.25)Y = np.arange(-4, 4, 0.25)X, Y = np.meshgrid(X, Y)Z = 3 * (1-X)**2 * np.e**(-(X**2) - (Y+1)**2)- 10*(X/5 - X**3 - Y**5)*np.e**(-X**2-Y**2)- 1/3*np.e**(-(X+1)**2 - Y**2)
- 画图
plot_surface(): x, y, z, rstride(), cstride()
.contourf() : x, y, z, xzdir, offset
fig = plt.figure()#定义图像窗口ax = Axes3D(fig)#在窗口上添加3D坐标轴ax.plot_surface(X, Y, Z, rstride = 1,#rows stride:指定行的跨度为1(只能是int)cstride = 1,#columns stride:指定列的跨度为1cmap = plt.get_cmap(\'Spectral\'))ax.contourf(X, Y, Z, zdir=\'x\',offset = -4)#创建在xz面上的投影ax.contourf(X, Y, Z, zdir=\'z\', offset=-7)#创建在xy面上的投影plt.colorbar(shrink = 0.8)#创建颜色条,为原比例的0.8
其中 zdir=‘x’,offset = -4指在x轴上取坐标-4的位置,往xz面投影:
若将offset改为-2,在xz面上的投影向前移到 x = -2的位置: