matplotlib 學習筆記(3): subplot and subplots

寫了兩篇 matplotlib, 感覺這個庫里面,函數(shù)還真是有點多,,,不知何年何月給寫完,或者半道撂翹子,,,算了,不管那么多,先把自己常用的寫一寫吧 ~


subplot 函數(shù)

調(diào)用 subplot 函數(shù)后,如下所示,創(chuàng)建一個nrows 行,ncols 列的 Axes 對象,然后返回在 index 位置的子圖。

subplot(nrows, ncols, index, facecolor, polar, **kwargs)
  • nrows,ncols,index:如果這三個數(shù)都小于10,則可以連寫,2,2,2 可以寫為 222。
  • facecolor:string型,如 ‘b',’w' 等,設(shè)置子圖的背景。
  • polar:bool類型,默認為False,設(shè)置坐標是否為極坐標。
import matplotlib.pyplot as plt
import numpy as np

if __name__ == '__main__' :
    t1 = np.arange(0, 5, 0.1)
    t2 = np.arange(0, 5, 0.02)

    plt.figure(1)
    plt.subplot(221,facecolor = 'gray')
    plt.plot(t1, np.exp(-t1) * np.cos(2 * np.pi * t1), 'r-')

    plt.subplot(222,polar = True)
    plt.plot(t2, np.cos(2 * np.pi * t2), 'r--')

    plt.subplot(212) #大家看這里,不再是前面的 ‘22‘,換成了’21‘,表示兩行一列
    plt.plot([1, 2, 3, 4], [1, 4, 9, 16])

    plt.show()

效果展示圖

當然,如果想要對子圖操作更加嚴格,按照網(wǎng)格來畫,可以選擇使用 GridSpec 。import matplotlib.gridspec as gridspec,具體使用方法這里便不再展開 ~

subplots 函數(shù)


subplots 函數(shù)會返回一個figure 對象和一個 Axes 對象:

def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,
             subplot_kw=None, gridspec_kw=None, **fig_kw):
  • nrows and ncols:行和列的個數(shù)。
  • sharex and sharey:決定是否共享x軸或y軸。
  • **fig_kw:figure 函數(shù)的參數(shù)都可以,如 figsize、facecolor等。
    fig,axes = plt.subplots(2,2)

    axes[0,0].plot(t1, np.exp(-t1) * np.cos(2 * np.pi * t1), 'r-', label = 'line')
    axes[0, 0].locator_params(nbins=10)                               #控制x、y軸的標注位置,此處只用來控制標注個數(shù)
    axes[0, 0].set_xlabel('x-label', fontsize=fontsize)               #設(shè)置x軸的標簽
    axes[0, 0].set_ylabel('y-label', fontsize=fontsize)               #設(shè)置y軸的標簽
    axes[0, 0].set_title('Title', fontsize=fontsize)                  #設(shè)置該子圖的標題
    axes[0, 0].legend()                                               #添加圖例
    axes[0,1].plot(t2, np.cos(2 * np.pi * t2), 'r--')
    axes[1,1].plot([1, 2, 3, 4], [1, 4, 9, 16])
    plt.show()

稍加修飾


順便再附帶一個小命令plt.tight_layout(),可以解決各個子圖標簽、標題相互遮擋等問題。

plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)
  • pad:分數(shù)(相對于 font-size),控制各個子圖邊界或 figure 邊界的內(nèi)邊距。
  • h_pad and w_pad:單位為英寸,控制相鄰子圖的高或者寬的邊距。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一滑動效果的產(chǎn)生 滑動一個View,本質(zhì)區(qū)別就是移動一個View。改變當前View所在的坐標,原理和動畫相似不斷改...
    猿萬閱讀 10,157評論 0 14
  • 5,以非常急迫的心情看完《書都不會讀你還想成功》,心中跌宕起伏。原來高質(zhì)量的讀書是這樣的:100天32本,一年36...
    小花_Sunny閱讀 175評論 0 0
  • 當真現(xiàn)在不如年少輕狂了,昨天一晚的夜貓結(jié)束之后,才發(fā)現(xiàn)現(xiàn)在的自己巨像一個行尸走肉,在做實驗的過程中,幾乎出現(xiàn)了事故...
    心如秋水閱讀 216評論 0 3
  • 期末之考將至矣,唯對弈之樂,涵養(yǎng)神思,薄暮時分,于自家檐下,支一方桌,擺兩方凳,棋盤紅黑置于臺上,湊一棋“擂臺”...
    童心杰閱讀 1,062評論 2 3

友情鏈接更多精彩內(nèi)容