1.导入模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
2.构建数据和函数
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)
3.画图
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:指定列的跨度为1
cmap = 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的位置: