1.自定义布局
通过GridSpec,我们可以将一个图形分成多个子图,并且可以控制每个子图的大小和位置。我们可以使用GridSpec的子函数subplotspec来创建子图,并将其添加到我们的图形中。在使用GridSpec时,我们需要指定图形的行数和列数,以及每个子图的位置和大小。通过这种方式,我们可以实现自定义的图形布局。
常用参数及其含义:
- nrows :表示行数。
- ncols:表示列数。
- figure:表示布局的画布。
- left,bottom,right,top :表示子图的范围。
- wspace :表示子图之间预留的宽度量。
- hspace : 表示子图之间预留的高度量。
实现对坐标大小的精细调整
- width_ratios:直接设置坐标系的相对宽度,相对宽度=设定值/sum(设定值) 。
- height_ratios:直接设置坐标系的相对高度,相对高度=设定值/sum(设定值) 。
2.使用 add_gridspec()方法向画布添加布局结构
运行代码如下:
# 需求一:利用自定义布局的GridSpec实例,在画布上创建如图所示的坐标系实例(见运行结果展示图)
%matplotlib notebook
import matplotlib.pyplot as plt
#1.创建画布实例
fig = plt.figure()
#2.创建“区域规划图”实例
gs = gridspec.GridSpec(3,4,figure=fig)
#3.根据给定的“区域规划图”,创建对应的坐标系实例
fi_ax1 = fig.add_subplot(gs[0,:])
fi_ax2 = fig.add_subplot(gs[1,:-2])
fi_ax3 = fig.add_subplot(gs[1,2:])
fi_ax4 = fig.add_subplot(gs[2,0],projection='polar')
fi_ax5 = fig.add_subplot(gs[2,1:4])
#设置紧密布局
plt.tight_layout()
#展示图例
plt.show()
运行结果如下: