Matplotlib contour3D():绘制三维等高线图(附带实例)
三维等高线图类似于我们在密度和等高线图中探索的等高线图。与二维 ax.contour 图一样,ax.contour3D 要求所有输入数据都采用二维规则网格的形式,并在每个点评估 Z 数据。
【实例】利用 ax.contour3D() 函数绘制三维等高线图。

图 1 三维等高线图
有时默认的视角不是最佳的,在这种情况下我们可以使用 view_init() 方法设置高程和方位角。例如,以下代码实现将使用 60 度的高程(即 xy 平面上方 60°)和 35° 的方位角(即绕 z 轴逆时针旋转 35°):

图 2 调整视角效果
【实例】利用 ax.contour3D() 函数绘制三维等高线图。
from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt def f(x, y): return np.sin(np.sqrt(x**2 + y**2)) # 构建 x,y 数据 x = np.linspace(-6, 6, 30) y = np.linspace(-6, 6, 30) # 将数据网格化处理 X, Y = np.meshgrid(x, y) Z = f(X, Y) fig = plt.figure() ax = plt.axes(projection='3d') # 50 表示在 z 轴方向等高线的高度层级, binary 颜色从白色变成黑色 ax.contour3D(X, Y, Z, 50, cmap='binary') ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('z') ax.set_title('三维等高线图') plt.show()运行程序,效果如下图所示:

图 1 三维等高线图
有时默认的视角不是最佳的,在这种情况下我们可以使用 view_init() 方法设置高程和方位角。例如,以下代码实现将使用 60 度的高程(即 xy 平面上方 60°)和 35° 的方位角(即绕 z 轴逆时针旋转 35°):
ax.view_init(60, 35) fig运行程序,效果如下图所示:

图 2 调整视角效果