如果要绘制三维图形,首先需要使用下面的语句导入相应的对象:
from mpl_toolkits.mplot3d import Axes3D
然后使用下面的两种方式之一声明要创建三维子图:
ax = fig.gca(projection='3d')
ax = plt.subplot(111, projection='3d')
接下来就可以使用ax的plot()方法绘制三维曲线、plot_surface()方法绘制三维曲面、scatter()方法绘制三维散点图或bar3d()方法绘制三维柱状图了。
在绘制三维图形时,至少需要指定x、y、z三个坐标轴的数据,然后再根据不同的图形类型指定额外的参数设置图形的属性。绘制三维曲面的方法plot_surface()语法如下:
plot_surface(X, Y, Z, *args, **kwargs)
其中常用的参数有:1)rstride和cstride分别控制x和y两个方向的步长,这决定了曲面上每个面片的大小;2)color用来指定面片的颜色;3)cmap用来指定面片的颜色映射表。
绘制三维散点图的方法scatter()语法如下:
scatter(xs, ys, zs=0, zdir='z', s=20, c=None, depthshade=True, *args, **kwargs)
其中常用的参数有:1)xs、ys、zs分别用来指定散点符号的x、y、z坐标,如果同时为标量则指定一个三点符号的坐标,如果同时为等长数组则指定一系列散点符号的坐标;2)s用来指定散点符号的大小,可以是标量或与xs等长的数组;3)表8-3中这里没有提到的其他参数也适用于三维散点图。
绘制三维柱状图的方法bar3d()语法如下:
bar3d(x, y, z, dx, dy, dz, color=None, zsort='average', *args, **kwargs)
其中常用的参数有:1)x、y、z分别用来指定每个柱底面的坐标,如果这三个参数都是标量则指定一个柱的底面坐标,如果是三个等长的数组则指定多个柱的底面坐标;2)dx、dy、dz分别用来指定柱在三个坐标轴上的跨度,即x方向的宽度、y方向的厚度和z方向的高度;3)color用来指定柱的表面颜色。
例1 首先生成测试数据x、y、z,然后绘制三维曲线,并设置图例的字体和字号。
运行结果:
例2 首先生成一组测试数据,然后绘制三维曲面,并设置坐标轴的标签和图形标题。
运行结果:
例3 生成随机测试数据,然后绘制三维柱状图,所有的柱统一使用红色,并且宽度和厚度都为1。
运行结果:
例4 根据Python绘制柱状图显示中国式过马路方式描述的问题和数据,绘制三维柱状图对数据进行展示。
运行结果:
例5 生成三组数据作为x、y、z坐标,每组数据包含30个介于[0,40]区间的随机整数,根据生成的数据绘制三维散点图。
运行结果: