1. Matplotlib绘图简介

  • 建立在Numpy数组基础上的多平台数据可视化库
  • 最初设计用来完善SciPy生态
  • 良好的操作系统兼容性和图形显示底层接口兼容性
  • 功能强大,设置灵活

1.1. 图形样式

利用Matplotlib绘图的图形风格可以设定,所有图形,可以通过plt.style.use('classic') 设置图形样式,在1.5版本以前只能使用经典风格,新版本会有不同的风格设置。

1.2. 不同环境的使用

不同环境中使用Matplotlib可能稍有不同,需要注意:

1.2.1. 脚本中使用

在脚本中使用,并不能自动显示图形,需要使用plt.show()明确让Matplotlib把图形显示出来,否则不会看到图形。

1.2.2. IPython shell

在IPython shell中使用画图,需要使用魔法命令%matplotlib, 在以后的画图命令中,会自动显示出需要画的图形。

1.2.3. Jupyter Notebook

在Jupyter Notebook中一般也需要使用魔法函数,但是相应魔法函数有两个:

  • %matplotlib inline: 在Notebook中启动静态图形
  • %matplotlib notebook:在Notebook中启动交互式图形

使用以上两个魔法函数,理论上不需要在使用show函数强制显示图形,但在实践过程中,可能出现不显示的情况,此时建议使用 show显示图像。

1.3. 图像的保存

经常需要保存产生的图像以备使用, 如果使用的是交互式显示图形,可以直接点击保存按钮来保存图形,在所有代码中,都可以使用savefig函数来保存函数。

1.4. 两种不同的画图接口

Matplotlib支持两类画图接口:

  • MATLAB风格接口:此类接口的特点是有状态的(Stateful),使用方便,对MATLAB用户友好,此类接口在pyplot中
  • 面向对象接口:面向对象方式,处理复杂图形比较方便,能力相对比较强

此两种风格接口比较相似,容易混淆,我们在使用中,经常会混用。