Matplotlib mpl_toolkits绘制3D图表(附带实例)
3D 图表有立体感,也比较美观,看起来更加“高大上”。下面介绍两种 3D 图表,即 3D 柱形图和 3D 曲面图。
绘制 3D 图表,我们依旧使用 Matplotlib,但需要安装 mpl_toolkits 工具包,使用 pip 安装命令:
【实例 1】绘制3D柱形图,程序代码如下:

图 1 3D柱形图
【实例 2】绘制 3D 曲面图,程序代码如下:

图 2 3D曲面图
绘制 3D 图表,我们依旧使用 Matplotlib,但需要安装 mpl_toolkits 工具包,使用 pip 安装命令:
pip install --upgrade matplotlib安装好这个模块后,即可调用 mpl_tookits 下的 mplot3d 类进行 3D 图表的绘制。
【实例 1】绘制3D柱形图,程序代码如下:
# 导入相关模块 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.axes3d import Axes3D import numpy as np fig = plt.figure() # 创建空画布 axes3d = fig.add_axes(Axes3D(fig)) # 创建3D画布并添加轴 zs = [1, 5, 10, 15, 20] # 创建列表(z轴数据) for z in zs: x = np.arange(0, 10) # x轴数据 y = np.random.randint(0, 30, size=10) # y轴数据 # 3D柱形图 axes3d.bar(x, y, zs=z, zdir='x', color=['r', 'green', 'yellow', 'c']) plt.show() # 显示图表运行程序,结果如下图所示:

图 1 3D柱形图
【实例 2】绘制 3D 曲面图,程序代码如下:
# 导入相关模块 import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() # 创建空画布 axes3d = fig.add_axes(Axes3D(fig)) # 创建3D画布并添加轴 x = np.arange(-4.0, 4.0, 0.125) # 生成x轴数据 y = np.arange(-3.0, 4.0, 0.125) # 生成y轴数据 # 对x、y轴数据进行网格化 X, Y = np.meshgrid(x, y) Z1 = np.exp(-X**2 - Y**2) Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) Z = (Z1 - Z2) * 2 # 计算z轴数据(高度数据) # 绘制3D图形 axes3d.plot_surface(X, Y, Z, rstride=1, # 指定行的跨度 cstride=1, # 指定列的跨度 cmap=plt.get_cmap('rainbow')) # 设置颜色映射 axes3d.set_zlim(-2, 2) # 设置z轴范围 plt.show() # 显示图表运行程序,结果如下图所示:

图 2 3D曲面图