首頁技術文章正文

繪制自定義區(qū)域的單子圖

更新時間:2022-04-07 來源:黑馬程序員 瀏覽量:

  使用pyplot的subplot2grid()函數(shù)可以將整個畫布規(guī)劃成非等分布局的區(qū)域,并可在選中的某個區(qū)域中繪制單個子圖,subplot2grid()函數(shù)的語法格式如下:

subplot2grid(shape, loc, rowspan=1, colspan=1, fig=None, **kwargs)

  該函數(shù)常用參數(shù)的含義如下。

  ·shape:表示規(guī)劃的區(qū)域結構,它是一個包含兩個整型數(shù)據(jù)的元組,其中第1個元素表示規(guī)劃區(qū)域的行數(shù),第2個元素表示規(guī)劃區(qū)域的列數(shù)。

  ·loc:表示選擇區(qū)域的位置,它是一個包含兩個整型數(shù)據(jù)的元組,其中第1個元素表示子圖所在的行數(shù)(行數(shù)從0開始),第2個元素表示子圖所在的列數(shù)(列數(shù)從0開始)。

  ·rowspan:表示向下跨越的行數(shù),默認為1。

  ·colspan:表示向右跨越的列數(shù),默認為1。

  ·fig:表示放置子圖的畫布,默認為當前畫布。

  例如,將畫布規(guī)劃成2x3的矩陣區(qū)域,并在第0行第2列的區(qū)域中繪制子圖;再次將畫布規(guī)劃成2x3的矩陣區(qū)域,并在第1行第1~2列的區(qū)域中繪制子圖,代碼如下:

import matplotlib.pyplot as plt
# 畫布被規(guī)劃成2x3的矩陣區(qū)域,之后在第0行第2列的區(qū)域中繪制子圖
axl = plt.subplot2grid((2, 3), (0, 2))
axl.plot([1, 2, 3, 4, 5])
# 畫布被規(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()

  運行程序,效果如圖5-9所示。

1649298227135_非等分布局的子圖.jpg

  圖5-9 非等分布局的子圖

  圖5-9中包含兩個大小不同的圖表。由圖5-9可知,第1個圖表位于畫布的右下方,圖表的寬度占畫布寬度的三分之一,高度占畫布高度的二分之一;第2個圖表位于畫布的右下方,圖表的寬度占畫布的三分之二,高度占畫布高度的二分之一。

分享到:
在線咨詢 我要報名
和我們在線交談!