寫了兩篇 matplotlib, 感覺這個庫里面,函數(shù)還真是有點多,,,不知何年何月給寫完,或者半道撂翹子,,,算了,不管那么多,先把自己常用的寫一寫吧 ~
- 目錄:
matplotlib 學習筆記(1): figure
matplotlib 學習筆記(2):plot
matplotlib 學習筆記(3): subplot and subplots
matplotlib 學習筆記(4):ion 和 ioff
matplotlib 學習筆記(5):scatter
seaborn 簡單使用
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:單位為英寸,控制相鄰子圖的高或者寬的邊距。