在Python中,GridSpec是matplotlib.gridspec模块中的一个类,用于创建复杂的图像网格布局。这个类可以让你自由地指定子图的位置和大小。
GridSpecs的使用格式
gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None)
GridSpecs的参数说明
nrows:必需参数,表示行的数量。
ncols:必需参数,表示列的数量。
figure:可选参数,表示要使用的图像实例。如果未提供,则将使用当前图像。
left, bottom, right, top:这些参数用于设置每个子图相对于图像边界的距离。它们的默认值为0.125,0.9,0.1和0.9。
wspace和 hspace:这些参数用于设置子图之间的水平和垂直间距。它们的默认值分别为0.2和0.2。
width_ratios:这是一个可选的列表或元组,用于设置每列的宽度比例。
height_ratios:这是一个可选的列表或元组,用于设置每行的高度比例。
实例1
import matplotlib.pyplot as plt #导入库
import matplotlib.gridspec as gridspec #导入gridspec模块
fig = plt.figure #创建画布
gs = gridspec.GridSpec( nrows=2,ncols=2,figure=fig) #设置行数与列数,指定绘图对象
ax1 = plt.subplot(gs[0,:]) #在第0行绘图并占满整行
ax2 = plt.subplot(gs[1,0:1]) #在第1行绘图,设置图占画布位置为0:1
ax3 = plt.subplot(gs[1,1:2]) #在第1行绘图,设置图占画布位置为1:2
plt.show() #展示图表
运行结果
实例2
import matplotlib.pyplot as plt #导入库
import matplotlib.gridspec as gridspec 导入gridspec模块
fig = plt.figure #绘制画布
gs = gridspec.GridSpec(3,4,figure=fig) 设置画布为三行四列,并指定绘图对象
ax1 = plt.subplot(gs[0,:]) #在第0行绘图并占满整行
ax2 = plt.subplot(gs[1,0:2]) #在第1行绘图,设置图占画布位置为0:2
ax3 = plt.subplot(gs[1,2:4]) #在第1行绘图,设置图占画布位置为2:4
ax4 = plt.subplot(gs[2,0],projection='polar') #在2行0列绘制极坐标
ax5 = plt.subplot(gs[2,1:4]) #在2行绘图,设置图占画布位置为1:4
plt.tight_layout(pad=1.3,h_pad=None,w_pad=None,rect=None) #自动调整布局,使图形布局更紧凑
plt.show()
运行结果