这个 matplotlib.gridspec.GridSpec 类用于指定放置子图的网格的几何形状。 为此,必须设置行数和列数。 也可以完成子图布局参数的调整。
该类的用法:
GridSpec (nrows, ncols, figure=None, left=None, bottom=None,
right=None, top=None, wspace=None, hspace=None,
width_ratios=None, height_ratios=None)
参数如下:
- nrows:是一个整数,代表网格中的行数。
- ncols:是一个整数,代表网格中的列数。
- figure:是用于绘制图形的可选参数。
- left, right, top, bottom:这些是可选参数,用于将子图的范围定义为图形宽度或高度的一部分。
- wspase:这是一个可选的float参数,用于保留子图之间的宽度空间。
- hspace:是一个可选的float参数,用于保留子图之间的高度空间。
- width_ratios:是一个可选参数,代表列的相对宽度。
- height_ratios:是一个可选参数,表示行的相对高度。
示例代码如图:
#导入所需要的库
%matplotlib auto
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
def annotate_axes(fig):
for i, ax in enumerate(fig.axes):
ax.text(0.5, 0.5, "ax%d" % (i+1), va="center", ha="center")
ax.tick_params(labelbottom=False, labelleft=False)
#创建画布
fig = plt.figure()
fig.suptitle("Sexy")
#创建区域规划图
gs = gridspec.GridSpec(2, #行数
2, #列数
width_ratios=[1, 2], #设置坐标系的相对宽度
height_ratios=[4, 1]) #设置坐标系的相对高度
ax1 = fig.add_subplot(gs[0]) #二维数组的索引操作
ax2 = fig.add_subplot(gs[1])
ax3 = fig.add_subplot(gs[2])
ax4 = fig.add_subplot(gs[3])
annotate_axes(fig)
其运行效果如图:
利用自定义布局的GridSpec实例,在画布上创建坐标系实例
#导入库并重命名
%matplotlib notebook
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
#1.创建画布实例
fig3 = plt.figure()
#2.创建“区域规划图”实例
spec2 = gridspec.GridSpec(3, 4, figure=fig3, wspace=0.5, hspace=0.5)#设置三行四列,并设置子图间预留的宽、高度量
#3.根据给定的“区域规划图”,创建对应的坐标系实例
ax1 = fig3.add_subplot(spec2[0, 0:4])
ax2 = fig3.add_subplot(spec2[1, 0:2])
ax3 = fig3.add_subplot(spec2[1, 2:4])
ax4 = fig3.add_subplot(spec2[2, 0], projection='polar')#指定类型为雷达图
ax5 = fig3.add_subplot(spec2[2, 1:4])
#运行
plt.show()
运行结果如图:
以上关于Gridspec类的使用方法