matplotlib绘图基础(三)

《matplotlib绘图基础(三)》

简介

本文将继续介绍matplotlib的绘图基础,前面也提到过子图(subplots)的使用,在这里我们会详细介绍如何通过subplots绘制子图。在本文中,你将学到:

  • add_subplot和subplots方法绘制子图;
  • 为什么用plt和坐标轴实例ax方法都能绘图。

add_subplot方法

在前面我们是这样来建立一个坐标轴的:

可以看出这种方式只能建立一个坐标轴,如果想建立多个子坐标轴的话,就可以使用 add_subplot 方法:

这句代码的意思是添加大小为(2*2)的子图,也就是四个坐标轴,2行2列排布。后面的1表示这四个坐标轴的第一个,它们的顺序依次是:

1 2
3 4

于是我们可以把接下来的坐标轴也表示出来:

此时发出一条绘图命令:

显示出来,就得到如下图形:

《matplotlib绘图基础(三)》

为什么是在最后一张图上绘图呢?

事实上, plt.plot() 命令应用在最近的subplot上,所以在这里就等价于 ax4.plot() 。因此,可以看出常规的 plt.plot() 方法绘图缺乏灵活性,而使用 ax1, ax2, ax3, ax4 能指定在对应的坐标上绘图,这也就是为什么提倡显式建立坐标轴 axes 的原因。

subplots方法

使用subplots方法能够更快捷地建立好所有坐标轴。

使用subplots方法能够直接创建画布 fig 和包含所有坐标轴的数组 axes 。

可以很方便地调用每个坐标轴:

subplots方法中的参数如下:

参数 描述
nrows subplot的行数
ncols subplot的列数
sharex 所有subplot使用相同的x轴刻度
sharey 所有subplot使用相同的y轴刻度
subplot_kw 用于创建个subplot的关键字字典
**fig_kw 创建figure时的其他关键字,如plt.subplots(2, 2, figsize=(8, 6))

代码演示:

使用 nrows 和 ncols 参数指定了行列数,并且使用 sharex 和 sharey 参数共享了x轴和y轴的坐标,得到如下图形:

《matplotlib绘图基础(三)》

总结

使用 add_subplot 方法或 subplots 方法能够非常灵活地绘制图片。在以后的绘图过程中,都建议使用坐标轴实例的方法替代 plt 方法,能够让我们对绘图具有完全的控制权。

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注