GridSpec:
matplotlib 的 gridspec 模块是专门指定画布中子图位置的模块,该模块中包含一个 GridSpec类,通过显式地创建GridSpec类对象来自定义画布中子图的布局结构,使得子图能够更好地适应画布。
GridSpec类的构造方法的语法格式如下:
GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, hspace=None, wspace=None, width_ratios=None, height_ratios=None)
该方法常用参数的含义如下:
✔️ncols : 表示列数。
✔️nrows : 表示行数。
✔️figure : 表示布局的画布。
✔️wspace : 表示子图之间预留的宽度量。
✔️left, bottom,right,top : 表示子图的范围。
✔️hspace : 表示子图之间预留的高度量。
GridSpec类对象的使用方式与数组的使用方式相似,采用索引或切片的形式访问每个布局元素。此外,matplotlib中还为Figure对象提供了快速添加布局结构的方法add_gridspec()。下面分别使用两种方式创建自定义的布局结构。
(1)使用GridSpec()方法创建子图的布局结构
这种方式需要创建子图和GridSpec类对象,之后在调用add_subplot()方法时传入 GridSpec类对象即可。
具体示例如下:
导入所需库与plt绘图模式
需要重启notebook才能使用
创建画布实例
-
%matplotlib auto
-
import numpy as np
-
import matplotlib.pyplot as plt
-
import matplotlib.gridspec as gridspec
-
Jupyter Notebook 默认输出的图片是静态的,无法进行放大等操作,可以添加指令:
%matplotlib auto
这样就能够在notebook中进行放大缩小等交互操作了。
在notebook中使用plt绘图共有三种模式:
- %matplotlib inline:这是默认的模式,输出的图片是静态的
- %matplotlib auto:在这个模式下会弹出一个单独 的绘图窗口,和在pycharm中一样
- %matplotlib notebook:在这个模式下会在notebook中产生一个绘图窗口,能够对图片进行放大缩小等操作。
创建“区域规划图”实例(GridSpec实例)
根据给定的"区域规划图",创建对应的坐标系实例
展示图表
plt.show()
-
ax1 = fig.add_subplot(spec[0,0]) # 二维数组的索引操作
-
ax2 = fig.add_subplot(spec[0,1])
-
ax3 = fig.add_subplot(spec[1,0])
-
ax4 = fig.add_subplot(spec[1,1])