matplotlib圖形整合之多個(gè)子圖繪制的實(shí)例代碼
簡單了解多子圖
學(xué)習(xí)matplotlib的時(shí)候,有人肯定會(huì)覺得為啥不用Excel,為啥不用origin,為啥不直接使用軟件,其實(shí)matplotlib繪圖之所以在python領(lǐng)域經(jīng)久不衰,是有它的獨(dú)特之處的,我認(rèn)為這其中的一個(gè)亮點(diǎn)就是,matplotlib繪制多個(gè)子圖的時(shí)候,我們可以根據(jù)自己的想法去排列子圖的順序,也可以生成不同的子圖數(shù)量,類似于前端web可視化大屏,有著較好的用戶體驗(yàn)感!

使用plt.subplot(mnx) 分別繪制
# -*- coding: utf-8 -*-
import matplotlib as mpl
import matplotlib.pyplot as plt
t=np.arange(0.0,2.0,0.1)
s=np.sin(t*np.pi)
plt.subplot(2,2,1) #要生成兩行兩列,這是第一個(gè)圖
plt.plot(t,s,'b*')
plt.ylabel('y1')
plt.subplot(2,2,2) #兩行兩列,這是第二個(gè)圖
plt.plot(2*t,s,'r--')
plt.ylabel('y2')
plt.subplot(2,2,3)#兩行兩列,這是第三個(gè)圖
plt.plot(3*t,s,'m--')
plt.ylabel('y3')
plt.subplot(2,2,4)#兩行兩列,這是第四個(gè)圖
plt.plot(4*t,s,'k*')
plt.ylabel('y4')
plt.show()
使用plt.subplot()方法,生成子圖,規(guī)則總結(jié)如下:
第一個(gè)數(shù)字是行,第二個(gè)數(shù)字是列,第三個(gè)數(shù)字是個(gè)數(shù)(圖形所處順序的序號(hào))
例如:224就是生成兩行兩列的子圖,本圖形是第四個(gè),那么就是第二行第二列的圖形
那么有時(shí)候,有些人覺得這樣太麻煩了,每次生成都要在繪圖程序前面加一行這樣的代碼,為什么不可以一次性生成我需要的畫布呢?答案是可以的!
使用plt.subplots(m,n),可以一次性生成m行n列的字圖
注意前面需要figure和ax進(jìn)行接收
調(diào)用就和我們數(shù)組一樣!
使用plt.subplots(m,n)一次性繪制
# -*- coding: utf-8 -*- import matplotlib as mpl import matplotlib.pyplot as plt t=np.arange(0.0,2.0,0.1) s=np.sin(t*np.pi) c=np.cos(t*np.pi) figure,ax=plt.subplots(2,2) # 多行subplots得到的ax數(shù)組是二維的 ax[0][0].plot(t,s,'r*') ax[0][1].plot(t*2,s,'b--') ax[1][0].plot(t,c,'g*') ax[1][1].plot(t*2,c,'y--')

# -*- coding: utf-8 -*- import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np t=np.arange(0.0,2.0,0.1) s=np.sin(t*np.pi) c=np.cos(t*np.pi) figure,ax=plt.subplots(1,2,figsize=(6,2),dpi=120) # 一行subplots得到的ax數(shù)組是一維的 ax[0].plot(t,s,'r*') ax[1].plot(t*2,s,'b--')
plt.subplots(nrows=1,ncols=3,figsize=(5,5)) #plt.subplots(nrows=1,ncols=3) # 返回一個(gè)figure對(duì)象,和一個(gè)axesSubplot子圖對(duì)象的數(shù)組 # 行或者列等于1,返回一個(gè)一維數(shù)組
加一個(gè)plt.tight_layout()會(huì)使得圖形更加緊湊
plt.tight_layout() plt.subplots(nrows=2,ncols=3, figsize=(12,8)) # 如果行列都不為1,那么返回一個(gè)2維數(shù)組

plt.subplots(nrows=3,ncols=4) # 如果行和列都大于1,返回1個(gè)Figure對(duì)象,和1個(gè)包含3*4=12個(gè)子圖對(duì)象的矩陣(2維數(shù)組) # 341 342 343 344 # 345 346 347 348 # 349 3,4,10 3,4,11 3,4,12

高級(jí)進(jìn)階
plt.subplot(121) plt.subplot(222) plt.subplot(224)
看到上面你會(huì)想到什么?會(huì)生成怎樣的畫布呢?

下面我就給大家詳細(xì)的解釋一下,為啥會(huì)出現(xiàn)這樣的畫布,首先我的需求是在左邊出現(xiàn)一個(gè)子圖,比較長的,最好是右邊兩個(gè)子圖的長度和,那么應(yīng)該怎么做呢?遇到這樣的情況我們?nèi)匀恍枰堰@一個(gè)平面分成均等分,那么也就是四個(gè)。
當(dāng)我們畫一個(gè)左邊的圖的時(shí)候,我們應(yīng)該把畫布想象為一行兩列的畫布,第一個(gè)自然也就是121
當(dāng)我們畫右邊的圖形的時(shí)候,我們應(yīng)該把畫布想象為兩行兩列的畫布,右邊第一個(gè)自然就是222,第二個(gè)自然就是224。
下面我們可以多看幾個(gè),來驗(yàn)證我們得推論
plt.subplot(221) plt.subplot(223) plt.subplot(122)

plt.subplot(211) plt.subplot(223) plt.subplot(224)

plt.subplot(221) plt.subplot(222) plt.subplot(212)

plt.figure(figsize=(12,5)) plt.subplot(231) plt.subplot(233) plt.subplot(234) plt.subplot(236) plt.subplot(132)

plt.figure(figsize=(16,5)) plt.subplot(262) plt.subplot(265) plt.subplot(268) plt.subplot(2,6,11) plt.subplot(132)


注意這個(gè)間隙是自動(dòng)產(chǎn)生的,如果需要將間隙變的更大,那么就可以取最左邊的值和最右邊的值
plt.figure(figsize=(16,5)) plt.subplot(241) plt.subplot(244) plt.subplot(245) plt.subplot(2,4,8) plt.subplot(132)

總結(jié)
在生成上面案例的時(shí)候,我們需要利用Excel進(jìn)行編排,不然很容易出錯(cuò)的!
到此這篇關(guān)于matplotlib圖形整合之多個(gè)子圖繪制的實(shí)例代碼的文章就介紹到這了,更多相關(guān)matplotlib 多子圖繪制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Matplotlib多子圖使用一個(gè)圖例的實(shí)現(xiàn)
- Matplotlib繪圖基礎(chǔ)之子圖詳解
- 利用Matplotlib實(shí)現(xiàn)單畫布繪制多個(gè)子圖
- Python+matplotlib繪制多子圖的方法詳解
- 一文教會(huì)你調(diào)整Matplotlib子圖的大小
- Python Matplotlib繪制多子圖詳解
- Matplotlib繪制子圖的常見幾種方法
- python使用matplotlib:subplot繪制多個(gè)子圖的示例
- matplotlib subplot繪制多個(gè)子圖的方法示例
- Matplotlib子圖的創(chuàng)建的實(shí)現(xiàn)
相關(guān)文章
mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
python讀取npy文件數(shù)據(jù)實(shí)例
npy文件用于存儲(chǔ)重建ndarray所需的數(shù)據(jù)、圖形、dtype?和其他信息,下面這篇文章主要給大家介紹了關(guān)于python讀取npy文件數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
Python使用Matplotlib繪制甘特圖的實(shí)踐
甘特圖已經(jīng)發(fā)展成項(xiàng)目規(guī)劃和跟蹤的必備工具,本文主要介紹了Python使用Matplotlib繪制甘特圖的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Python?Traceback(most?recent?call?last)報(bào)錯(cuò)信息:示例解讀
這篇文章主要介紹了Python?Traceback(most?recent?call?last)報(bào)錯(cuò)信息:示例解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12

