網友評分: 9.7分
Matplotlib是一款基于Python語言打造的2D繪圖數據庫,該繪圖庫可以在各種平臺上通過數據拷貝以及交互式環境來生成數據,同時還能使用numpy進行數組運算,并調用一系列其他的Python庫來實現硬件交互,通過該繪圖庫你可以只用幾行代碼就能生成直方圖、功率譜、條形圖等繪圖,非常的高效簡便。
1、一個圖中的多個子圖:多軸(即子圖)創建與 subplot()功能
2、圖片:Matplotlib可以使用該imshow()函數顯示圖像(假定等距的水平尺寸)。
3、輪廓和偽彩色:pcolormesh()即使水平尺寸不均勻,該功能也可以對二維數組進行彩色表示。該 contour()函數是表示相同數據的另一種方式
4、直方圖:該hist()函數自動生成直方圖并返回垃圾桶計數或概率
5、路徑:您可以使用matplotlib.path模塊在Matplotlib中添加任意路徑
6、三維繪圖:mplot3d工具包(請參閱入門和 mplot3d工具包)支持簡單的3d圖形,包括曲面、線框、散點圖和條形圖
7、Streamplot :該streamplot()函數繪制矢量場的流線。除了簡單繪制流線之外,還可以將流線的顏色和/或線條寬度映射到單獨的參數,例如矢量場的速度或局部強度。
8、橢圓:為了支持的 鳳凰火星任務(其用于Matplotlib顯示航天器的地面跟蹤),邁克爾Droettboom建立在工作由查理Moad提供了極其精確的8樣條近似橢圓弧(見 Arc),這是不敏感的放大水平。
9、條形圖:使用該bar()功能來制作條形圖,其中包括自定義(如錯誤欄)
10、餅圖:該pie()功能允許您創建餅圖。可選功能包括自動標記面積百分比,從餅圖中心爆炸一個或多個楔子,以及陰影效果。仔細看附件中的代碼,只需幾行代碼即可生成此圖。
11、表:該table()功能將一個文本表添加到一個軸。
12、散點圖:該scatter()函數使用(可選)大小和顏色參數生成散點圖。這個例子繪制了Google股票價格的變化,標記的大小反映了交易量和顏色隨時間的變化。在這里,alpha屬性用于制作半透明的圓形標記。
1、acorr:繪制自相關x。
2、angle_spectrum:繪制角度譜。
3、annotate:xy用文字標注點s。
4、arrow:向軸添加一個箭頭。
5、autoscale:自動縮放軸視圖到數據(切換)。
6、axes:向圖中添加一個軸。
7、axhline:在軸上添加一條水平線。
8、axhspan:在軸上添加一個水平跨度(矩形)。
9、axis:獲取或設置軸屬性的便捷方法。
10、axvline:在軸上添加一條垂直線。
11、axvspan:在軸上添加垂直跨度(矩形)。
12、bar:做一個酒吧陰謀。
13、barbs:繪制一個2-D領域的倒鉤。
14、barh:制作一個水平條形圖。
15、box:打開或關閉軸箱。
16、boxplot:做一個盒子和胡須情節。
17、broken_barh:繪制橫條。
18、cla:清除當前軸。
19、clabel:標出一個等高線圖。
20、clim:設置當前圖像的顏色限制。
21、close:關閉一個數字窗口。
22、cohere:繪制x和y之間的一致性。
23、colorbar:添加一個顏色條到一個情節。
一、函數式繪圖
1、matplotlib是受MATLAB的啟發構建的。MATLAB是數據繪圖領域廣泛使用的語言和工具。MATLAB語言是面向過程的。利用函數的調用,MATLAB中可以輕松的利用一行命令來繪制直線,然后再用一系列的函數調整結果。
2、matplotlib有一套完全仿照MATLAB的函數形式的繪圖接口,在matplotlib.pyplot模塊中。這套函數接口方便MATLAB用戶過度到matplotlib包。下面,我們調用該模塊繪制一條直線。
3、上面的每一條命令都很簡單,你可以從函數名讀出該函數所要實現的功能。比如plot為畫線,title為增加標題。最終保存的demo.jpg如下。
4、上面的函數式調用很方便。在Python特殊方法與多范式中,我們已經談到,Python中的函數式編程是通過封裝對象實現的。matplotlib中的函數式調用其實也是如此。matplotlib本質上還是構建對象來構建圖像。函數式編程將構建對象的過程封裝在函數中,從而讓我們覺得很方便。
在matplotlib.pyplot中,你還可以找到下面的繪圖函數。如果你經常使用數據繪圖程序,應該會很熟悉這些圖形:
二、面向對象編程
盡管函數式繪圖很便利,但利用函數式編程會有以下缺點:
(1)增加了一層“函數”調用,降低了效率。
(2)隸屬關系被函數掩蓋。整個matplotlib包是由一系列有組織有隸屬關系的對象構成的。函數掩蓋了原有的隸屬關系,將事情變得復雜。
(3)細節被函數掩蓋。pyplot并不能完全復制對象體系的所有功能,圖像的許多細節調中最終還要回到對象。
(4)每件事情都可以有至少兩種方式完成,用戶很容易混淆。
而對于開發者來說,了解對象是參與到Matplotlib項目的第一步。
1、我們將上面的直線繪圖更改為面向對象式(OO, object-oriented)的,為此,我們引入兩個類: Figure和FigureCanvas。(函數式編程也調用了這些類,只是調用的過程被函數調用所遮掩。)
標簽: Matplotlib 繪圖軟件 Python