市面上的Matplotlib教程大部分都只注重各种图表的绘制方法,本文略有不同,比如在5.2节会重点突出Matplotlib图表布局、组件构成等底层原理,掌握这些之后,绘制各种各样图表就有思路了。Matplotlib的学习,从数据分析师的角度或机器学习工程师的角度学习重点会略有不同,比如后者偏重:
数据分布的可视化:使用直方图、盒形图和小提琴图来了解数据的分布和离群值。
模型性能的可视化:使用混淆矩阵、ROC曲线和学习曲线等图形来评估模型的性能。
这部分我会在5.6节实战项目部分有体现。最后,5.7节会补充一些查表、电子书和代码。
本章框架:
Matplotlib是一个Python的2D绘图库,它以在交互式环境生成出版质量级别的图形。通过Matplotlib,开发者可以仅需要几行代码,便可以生成饼图,直方图,条形图,散点图等。
也可以生成更高级的各种图表:
安装
matplotlib的安装与Python中其他第三方库安装方法无异
pipinstallmatplotlib
导入
进行导入操作时通常不会直接将整个matplotlib包导入,而是导入matplotlib包中最为常用的pyplot模块,一般的,我们习惯将pyplot导入时起一个简称plt
importmatplotlib.pyplotasplt
开始介绍之前,先给大家看个小例子,大家重点看一下步骤即可
在使用matplotlib进行绘图之前,理解matplotlib图表构成是非常有必要的。
matplotlib图表有三个非常重要的概念:figure、axes、axies,三者之间的关系构成了matplotlib图表的整体布局
Matplotlib图表中,至少有一个figure,figure可以理解为一张画布,画布上面可以画多个axes,这里的axes我理解为坐标系,每个坐标系可以有多个axis,也就是有多条坐标轴。
figure层:画布,这是最低层的容器,用于容纳axes。(2)axes层:坐标系,也成为轴域,第二层容器,用于容纳axis。(3)axis层:坐标轴,也包含坐标轴上更加细微的组件。
下图是在matplotlib官方文档中展示的一张图片,进一步的很清晰展示了matplotlib图表布局上的组件构成:
蓝色部分文本是各组件的名称,请牢记各组件的名称,方便在对各组件进行设置是调用函数,因为组件的名称与函数名是相似的。其实,在matplotlib中,在figure中的所有组件,包括图一中的axes、axies甚至是figure和图中出现的所有组件都称为artist,因为这些组件均继承于一个名为Artist的父类。根据所在位置和作用,我们可以将matplotlib所有artist可以划分到三个层次:
ArgumentDefaultDescriptionnum1图的个数figsizefigure.figsize图的大小,单位为英寸(宽度,高度)dpifigure.dpi分辨率,每英寸的点数facecolorfigure.facecolor绘图背景颜色edgecolorfigure.edgecolor绘图背景边框颜色frameonTrue是否绘制边框