matplotlib 中的subplot的用法


一個figure對象包含了多個子圖,可以使用subplot()函數來繪制子圖:

  (首先我沒有想明白為啥會有這么多的內容來介紹這一個函數,后來知道了原來這個函數還真的挺多的內容)

   言簡意賅:

   首先,它的調用是這樣子的:subplot(numbRow , numbCol ,plotNum ) or  subplot(numbRow numbCol plotNum),對。看清楚,可以不用逗號分開直接寫在一起也是對的;

   解釋一下這是啥玩意:

   numbRow是plot圖的行數;numbCol是plot圖的列數;plotNum是指第幾行第幾列的第幾幅圖 ;

   舉個例子,如果是subplot (2 ,2 ,1),那么這個figure就是個2*2的矩陣圖,也就是總共有4個圖,1就代表了第一幅圖

   也可以寫成subplot(221),這是沒毛病的哈。是不是超級簡單!上個圖:

 

看到沒,我寫的一個椒鹽噪聲的圖,然后subplot可以分個寫,只不過我用了一個循環的形式了;

 

對了,還有一種形式差點忘記說了,如果是只有3副圖或者只有5副圖的單數該怎么辦?

 

這里就不能用循環操作了,因為3副圖的話划分起來得重新排列:

  啥意思?比如說,畫一個3副圖的圖像:

  首先將整個表按照 2*2 划分
  前兩個簡單, 分別是 (2, 2, 1)(2, 2, 2)

  但是第三個圖呢, 他占用了 (2, 2, 3)(2, 2, 4)

  然后需要對其重新划分, 按照 2 * 1 划分

  前兩個圖占用了 (2, 1, 1) 的位置

  因此第三個圖占用了 (2, 1, 2) 的位置

  直接上代碼大家看一下,其實大同小異,語法都差不多;   

import matplotlib.pyplot as plt
import numpy as np

def f(t):
    return np.exp(-t) * np.sin(2 * np.pi * t)


if __name__ == '__main__':
    t1 = np.arange(-5, 5, 0.1)
    t2 = np.arange(-5, 5, 0.2)
    plt.figure()
    plt.subplot(221)
    plt.plot(t1, f(t1), 'bo', t2, f(t2), 'g--')
    plt.subplot(222)
    plt.plot(t2, np.cos(2 * np.pi * t2), 'g--')
    plt.subplot(212)
    plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
    plt.show()

  然后這是展示的結果 :

好了,基本上到這里已經差不多了,大家學會了么?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM