更新時間:2022年04月04日10時57分 來源:傳智教育 瀏覽次數(shù):
使用pyplot的subplot()函數(shù)可以在規(guī)劃好的某個區(qū)域中繪制單個子圖,subplot()函數(shù)的語法格式如下:
subplot(nrows, ncols, index, projection, polar, sharex, sharey, label, **kwargs)
該函數(shù)的常用參數(shù)含義如下。
·nrows:表示規(guī)劃區(qū)域的行數(shù)。
·ncols:表示規(guī)劃區(qū)域的列數(shù)。
·index:表示選擇區(qū)域的索引,默認(rèn)從1開始編號。
·projection:表示子圖的投影類型,可以為None、'aitoff'、'hammer'、'lambert'、'mollweide'、'polar'、'rectilinear'中任一取值,其中默認(rèn)值None代表使用'rectilinear'直線投影。
·polar:表示是否使用極坐標(biāo),默認(rèn)值為False。若參數(shù)polar設(shè)為True,則作用等同于projection='polar'。
·sharex, sharey:表示是否共享子圖的x軸或y軸。
參數(shù)nrows、ncols、index既支持單獨(dú)傳參,也支持以一個3位整數(shù)(每位整數(shù)必須小于10)的形式傳參。例如,subplot(235)與subplot(2,3,5)是等價的。
subplot()函數(shù)會返回一個Axes類的子類SubplotBase對象。
需要說明的是,F(xiàn)igure類對象可以使用add_subplot()方法繪制單子圖,此方式與subplot()函數(shù)的作用是等價的。例如,將畫布規(guī)劃成3x2的矩陣區(qū)域,并在索引為6的區(qū)域中繪制子圖;再次將畫布規(guī)劃成3x1的矩陣區(qū)域,并在索引為2的區(qū)域中繪制子圖,代碼如下。
# 通過窗口的形式顯示圖片,很好地體現(xiàn)子圖與整個畫布的位置關(guān)系 import matplotlib.pyplot as plt # 畫布被規(guī)劃為3x2的矩陣區(qū)域,之后在索引為6的區(qū)域中繪制子圖 ax_one = plt.subplot(326) ax_one.plot([1, 2, 3, 4, 5]) # 畫布被規(guī)劃為3x1的矩陣區(qū)域,之后在索引為2的區(qū)域中繪制子圖 ax_two = plt.subplot(312) ax_two.plot([1, 2, 3, 4, 5]) plt.show()
運(yùn)行程序,效果如圖5-2所示。
圖5-2 連續(xù)繪制的兩個子圖
北京校區(qū)