更新時(shí)間:2021-05-06 來源:黑馬程序員 瀏覽量:
maplotib是一個(gè)由約翰·亨特(John Hunter)等人員開發(fā)的、主要用于繪制2D圖表的Python庫(kù),它支持numpy、pandas 的數(shù)據(jù)結(jié)構(gòu),具有豐富的繪制圖表、定制圖表元素(圖例、注釋文本、表格等)或樣式(如顏色、字體、線型等)的功能,可以幫助開發(fā)人員輕松獲得高質(zhì)量的圖表。此外,matplotib還可用于繪制一此3D圖表。
matplotib實(shí)際上是一個(gè)面向?qū)ο蟮睦L圖庫(kù),它所繪制的圖表元素均對(duì)應(yīng)一個(gè)對(duì)象。 但matplotib在設(shè)計(jì)之初仿照MATLAB,它提供了一套與MATLAB命令類似的API,方便熟悉MATLAB的用戶進(jìn)行開發(fā)。matplotlib官網(wǎng)提供了3種API : pyplot API、object-oriented API、pylab API。
1. pyplot API
pyplot API是使用pyplot模塊開發(fā)的接口,該接口的底層封裝了一系列與MATLAB命令同名的函數(shù),使用這些函數(shù)可以像使用MATLAB命令一樣快速地繪制圖表。
當(dāng)使用pyplot API繪圖時(shí),需要先使用“import matplotlib.pyplot as plt”語句導(dǎo)入pyplot模塊,之后使用該模塊調(diào)用繪圖函數(shù)即可在當(dāng)前的畫布和繪圖區(qū)域中繪制圖表。pyplot API屏蔽了底層畫布和繪圖區(qū)域的創(chuàng)建細(xì)節(jié),可以持續(xù)跟蹤當(dāng)前的畫布和繪圖區(qū)域。
對(duì)于熟悉MATLAB的用戶而言,使用pyplot API會(huì)非常得心應(yīng)手;對(duì)于不熟悉MATLAB的用戶而言,只需花費(fèi)少量的時(shí)間就可以掌握pyplot API的函數(shù)。雖然pyplot API的用法極其簡(jiǎn)單,但是pplot API隱藏了matplotib中一系列具有隸屬關(guān)系的繪圖對(duì)象,使初學(xué)者十分容易產(chǎn)生混淆。
2. object-oriented API
object-oriented API是面向?qū)ο蟮慕涌冢摻涌诎幌盗袑?duì)應(yīng)圖表元素的類,只有創(chuàng)建這些類的對(duì)象并按照隸屬關(guān)系組合到一起才能完成一次完整的繪圖。
當(dāng)使用object-oriented API 繪圖時(shí),用戶需要先創(chuàng)建畫布(Figure類對(duì)象),再在該畫布上添加擁有坐標(biāo)系統(tǒng)的繪圖區(qū)城( Axes類對(duì)象),最后在該繪圖區(qū)城中調(diào)用繪圖方法繪制圖表。
與使用pyplot API的方式相比,objeet-oriented API不僅使用戶能明確繪圖對(duì)象的隸屬關(guān)系,而且可以自由地定制繪圖對(duì)象,但object-oriented API接近maplotib基礎(chǔ)和底層,學(xué)習(xí)難度稍大,僅實(shí)現(xiàn)一個(gè)簡(jiǎn)單功能便需要編寫不少的代碼。
3. pylab API
pylab API是使用pylab模塊開發(fā)的接口,它最初是為了模仿MATLAB的工作方式而設(shè)計(jì)的,包括pyplot、numpy模塊及一.些其他附加功能,適用于Python交互環(huán)境中。
當(dāng)使用pylab API繪圖時(shí),用戶需要將pylab模塊的所有函數(shù)導(dǎo)人單獨(dú)的命名空間中,以便很好地實(shí)現(xiàn)交互模式,但可能會(huì)發(fā)生-些未知的錯(cuò)誤行 為。matplotlib 官方不建議使用pylab API進(jìn)行開發(fā),并在最新的版本中棄用了pylab API。
用戶在使用時(shí)可以根據(jù)自身的實(shí)際情況進(jìn)行選擇,若只是需要快速地繪制圖表,可以選擇pyplot API進(jìn)行開發(fā);若需要自定義圖表,可以選擇object-oriented API進(jìn)行開發(fā)。
猜你喜歡:
Redis中l(wèi)ist底層的實(shí)現(xiàn)方式與區(qū)別