更新時(shí)間:2022-04-07 來(lái)源:黑馬程序員 瀏覽量:
使用pyplot的subplot2grid()函數(shù)可以將整個(gè)畫(huà)布規(guī)劃成非等分布局的區(qū)域,并可在選中的某個(gè)區(qū)域中繪制單個(gè)子圖,subplot2grid()函數(shù)的語(yǔ)法格式如下:
subplot2grid(shape, loc, rowspan=1, colspan=1, fig=None, **kwargs)
該函數(shù)常用參數(shù)的含義如下。
·shape:表示規(guī)劃的區(qū)域結(jié)構(gòu),它是一個(gè)包含兩個(gè)整型數(shù)據(jù)的元組,其中第1個(gè)元素表示規(guī)劃區(qū)域的行數(shù),第2個(gè)元素表示規(guī)劃區(qū)域的列數(shù)。
·loc:表示選擇區(qū)域的位置,它是一個(gè)包含兩個(gè)整型數(shù)據(jù)的元組,其中第1個(gè)元素表示子圖所在的行數(shù)(行數(shù)從0開(kāi)始),第2個(gè)元素表示子圖所在的列數(shù)(列數(shù)從0開(kāi)始)。
·rowspan:表示向下跨越的行數(shù),默認(rèn)為1。
·colspan:表示向右跨越的列數(shù),默認(rèn)為1。
·fig:表示放置子圖的畫(huà)布,默認(rèn)為當(dāng)前畫(huà)布。
例如,將畫(huà)布規(guī)劃成2x3的矩陣區(qū)域,并在第0行第2列的區(qū)域中繪制子圖;再次將畫(huà)布規(guī)劃成2x3的矩陣區(qū)域,并在第1行第1~2列的區(qū)域中繪制子圖,代碼如下:
import matplotlib.pyplot as plt # 畫(huà)布被規(guī)劃成2x3的矩陣區(qū)域,之后在第0行第2列的區(qū)域中繪制子圖 axl = plt.subplot2grid((2, 3), (0, 2)) axl.plot([1, 2, 3, 4, 5]) # 畫(huà)布被規(guī)劃成2x3的矩陣區(qū)域,之后在第1行第1~2列的區(qū)域中繪制子圖 ax2 = plt.subplot2grid((2, 3), (1, 1), colspan=2) ax2.plot([1, 2, 3, 4, 5]) plt.show()
運(yùn)行程序,效果如圖5-9所示。
圖5-9 非等分布局的子圖
圖5-9中包含兩個(gè)大小不同的圖表。由圖5-9可知,第1個(gè)圖表位于畫(huà)布的右下方,圖表的寬度占畫(huà)布寬度的三分之一,高度占畫(huà)布高度的二分之一;第2個(gè)圖表位于畫(huà)布的右下方,圖表的寬度占畫(huà)布的三分之二,高度占畫(huà)布高度的二分之一。