Matplotlib使用笔记

Matplotlib概貌

Matplotlib 是 Python 的一个 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。在进行数据处理时,有时会需要将部分数据以各种图形形式展示出来,例如直方图、功率谱、条形图、错误图以及散点图等,从中可以直观地看清数据间的各种关系或规律,这时就需要用到这个强大的绘图库。Matplotlib是参照matlab的强大绘图功能设计而得,所以部分语法特征与matlab类似。

特殊命令%matplotlib

在ipython和jupyter环境下,%matplotlib可以将matplotlib的图表直接嵌入到Notebook之中。通常所见的命令%matplotlib inline,其中inline参数表示将图表嵌入到Notebook中。
简单来说,在ipython或jupyter中绘图时,如果没有使用%matplotlib inline,则需要执行两次绘图代码才能显示图形,只执行一次只会输出该图形对象。

示例如下:

不使用特殊命令

第一次执行绘图代码后:

第二次执行绘图代码后:

使用特殊命令

只执行一次,即可输出图形:

中文乱码问题

在绘图时,有时需要给图像添加图例、横纵坐标名称等项目,此时会不可避免地用到中文,matplotlib默认状态下不支持中文显示,所以需要进行进一步设置。

示例如下:

默认状态下

代码临时处理

注意:以上代码处理方式只能临时起作用,如果重启编译器,在不添加处理代码的情况下,依旧不能显示中文。若要一劳永逸地处理,则需要字体下载安装等操作,本文不再详述。

画板与子图

平常情况

平常使用matplotlib进行画图时,代码类似于下面这样:

多子图并列

但是,若需要同时显示多个图形,则需要用到子图功能;matplotlib画图是在画板上进行的,可以将多个图形显示在一个画板上,这些图相对于画板称为子图。

从这应该看到,前一个例子(平常情况)只是在画板上仅创建了一个子图,属于多子图并列显示的一种特殊情况。

画图基础

默认状况下,matplotlib会将传入的横纵坐标用线段直连:

当然,对于数据点和所连线段的属性可以进行重新设置:

诚然,上述几个例子只能用作示例,真正需要使用matplotlib时,需要将处理的数据送入绘图函数,绘制出能够展现数据特征和规律的条形图、柱状图、直方图、散点图等多种多样的有效图形。这也是在数据探索阶段必需的工具,将在后文数据探索专题中详细介绍。
posted @ 2020-03-05 14:03  快到皖里来  阅读(276)  评论(0编辑  收藏  举报