Matplotlib3D作图-plot_surface(), .contourf(), plt.colorbar()

  1. 导入模块
import pandas as pd import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D

  1. 构建数据和函数
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)

  1. 画图
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

【Matplotlib3D作图-plot_surface(), .contourf(), plt.colorbar()】其中 zdir=‘x’,offset = -4指在x轴上取坐标-4的位置,往xz面投影:
Matplotlib3D作图-plot_surface(), .contourf(), plt.colorbar()
文章图片

若将offset改为-2,在xz面上的投影向前移到 x = -2的位置:
Matplotlib3D作图-plot_surface(), .contourf(), plt.colorbar()
文章图片

    推荐阅读