更新時間:2022-04-13 來源:黑馬程序員 瀏覽量:
matplotlib的gridspec模塊是專門指定畫布中子圖位置的模塊,該模塊中包含一個GridSpec類,通過顯式地創(chuàng)建GridSpec類對象來自定義畫布中子圖的布局結(jié)構(gòu),使得子圖能夠更好地適應(yīng)畫布。GridSpec類的構(gòu)造方法的語法格式如下:
GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_rations=None, height_rations=None)
該方法常用參數(shù)的含義如下。
.nrows:表示行數(shù)。
.ncols:表示列數(shù)。
.figure:表示布局的畫布。
.left,bottom,right,top:表示子圖的范圍。
.wspace:表示子圖之間預(yù)留的寬度量。
.hspace:表示子圖之間預(yù)留的高度量。
GridSpec類對象的使用方式與數(shù)組的使用方式相似,采用索引或切片的形式訪問每個布局元素。此外,matplotlib中還為Figure對象提供了快速添加布局結(jié)構(gòu)的方法add_gridspec()。下面分別使用兩種方式創(chuàng)建自定義的布局結(jié)構(gòu)。
(1)使用GridSpec()方法創(chuàng)建子圖的布局結(jié)構(gòu)
這種方式需要創(chuàng)建子圖和GridSpec類對象,之后在調(diào)用add_subplot()方法時傳入GridSpec類對象即可,具體示例如下。
import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec fig2 = plt.figure() spec2 = gridspec.GridSpec(ncols=2, nrows=2, figure=fig2) f2_ax1 = fig2.add_subplot(spec2[0, 0]) f2_ax2 = fig2.add_subplot(spec2[0, 1]) f2_ax3 = fig2.add_subplot(spec2[1, 0]) f2_ax4 = fig2.add_subplot(spec2[1, 1]) plt.show()
以上示例創(chuàng)建的子圖布局如圖5-17所示。
圖5-17 使用GridSpec()方法創(chuàng)建子圖的自定義布局