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