自定义布局
matplotlib的girdspec模块是专门指定画布中子图位置的模块,该模块中包含一个GridSpec类,通过显式地创建GridSpec类对象来着自定义画布中子图的布局结构,使得子图可以更好地适应画布,GridSpec类的构造方法的语法格式如下:
GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None,
top=None, wspace=None, hspace=None, width_ration=None, height_ration=None)
该方法常用参数的含义如下:
-
nrows:表示行数。
-
ncols:表示列数。
-
figure:表示布局的画布。
-
left,bottom,right,top:表示子图的范围。
-
wspace:表示子图之间预留的宽度量
-
hspace:表示子图之间预留的高度量
运行代码如下:
# matplotlib中文网 https://www.matplotlib.org
#导入所需要的库
%matplotlib notebook
import matplotlib.pyplot as plt
#1.创建画布实例
fig = plt.figure()
#2.创建“区域规划图”实例
gs = fig.add_gridspec(3,4) #把fig画布规划成3 X 4 的矩阵
#3.根据给定的“区域规划图”,创建对应的坐标系实例
ax1 = fig.add_subplot(gs[0,:]) #在第0行进行一个切片绘制
ax2 = fig.add_subplot(gs[1,0:2]) #在第1行索引为0的区域绘制一个向右跨越2的矩形
ax3 = fig.add_subplot(gs[1,2:4]) #在第1行索引为2的区域绘制一个向右跨越2的矩形
ax4 = fig.add_subplot(gs[2,0],projection = 'polar') #在第2行索引为0的区域绘制一个雷达图
ax4 = fig.add_subplot(gs[2,1:4]) #在第2行索引为1的区域绘制一个向右跨越3的矩形
plt.tight_layout()#紧凑布局
plt.show()
运行结果如下: