.本节书摘来自华章出版社《机器学习系统设计:Python语言实现》一书中的第2章,第2.5节,作者 [美] 戴维·朱利安(David Julian),更多章节内容可以访问云栖社区“华章计算机”公众号查看
2.5 Matplotlib
Matplotlib或者说其更为重要的子包PyPlot,是Python中用来可视化二维数据的基本工具。这里我们只做简单介绍,因为通过例子,我们可以很容易看出其用法。PyPlot使用命令式函数,是仿照Matlab进行工作的。每个PyPlot函数都会对一个PyPlot实例做出一些改变。PyPlot的核心是plot方法。plot最为简单的实现是传入一个列表或一维数组。如果只传入一个参数,plot会假设该参数为y值序列,并且自动生成x值。通常,我们会传给plot两个一维数组或列表分别作为x和y坐标。plot方法还可以接受一个用来指明线条属性的参数,例如线条的宽度、颜色和风格。示例如下;
这段代码会打印输出三条不同风格的线条:红色线条、蓝色正方形和绿色三角形。在上例中,我们能够看到,可以传入多对坐标数组来绘制多个线条。我们可以输入help(plt.plot)函数得到完整的线条风格列表。
与Matlab一样,PyPlot是在当前坐标轴上应用绘制命令的。如果要创建多个坐标轴,可以使用subplot命令。示例如下:
上例代码的输出如下:
另一个有用的图形是直方图。hist()对象以一个数组或一个数组序列作为输入值。第二个参数是方柱的数量。在下例中,我们将分布划分为10个方柱。当设置参数normed为1或true时,将对计数进行归一化,形成概率密度。还要注意在代码中,我们对x轴和y轴进行了标记,显示了标题,并且在指定坐标位置显示了一些文字。
这段代码的输出如下所示:
我们最后要看的二维图是散点图。scatter对象以长度一样的两个序列对象作为参数,例如数组,散点颜色和风格属性可以作为可选参数。代码示例如下:
我们可以观察到如下输出:
Matplotlib针对三维图形渲染也有强大的工具包。下面的代码示例中包括了简单的三维点、线和面的图形例子。三维图形与二维图形的创建方式十分相似。这里,我们使用gca函数的当前坐标轴,设置投影参数为三维。所有这些绘制方法与其对应的二维绘制方法都很像,只是需要为z轴提供第三组输入值:
我们可以观察到如下输出: