為什麼越來越多的碩士博士研究生放棄matlab開始使用matplotlib?


Matplotlib是什麼?

Matplotlib是由John D. Hunter 編寫的一款強大的Python數據可視化繪圖庫。

Matplotlib代碼主要由三個部分組成:

  1. 用戶介面(matplotlib.pylab)。

    該部分是一個函數集,函數集內的函數與用法與MATLAB的函數用法非常類似,所繪製的圖像也極為相似,所以學習過MATLAB的用戶可以很快上手Matplotlib。

  2. Matplotlib前端(Matplotlib API)。

    該部分是用戶在使用過程中需要面對處理的部分,如繪圖過程中的窗體、文本、線、圖像等的創建和管理都是由該部分實現的。

  3. Matplotlib後端(Matplotlib backends)。

    該部分用於將用戶繪製的圖像展現出來。

    通常我們畫的圖都是用Python shell直接顯示出來的,但是不同的用戶有不同的展示需求,如有的用戶需要將圖像嵌套在自己的應用程序中,有的用戶需要將圖像動態的展示在網站上,而研究生則需要輸出矢量圖用於論文創作。

    針對不同的需求進行展示,並不需要用戶來做大量的操作,而後端卻在幕後做了大量的工作。

Matplotlib是如何誕生的?

Matplotlib的作者John D. Hunter曾經使用MATLAB做數據分析和可視化多年。但是當他開始處理EEG(腦電圖)數據時,他需要寫一個與數據進行交互的應用程序,所以他用MATLAB開發了一個腦電圖分析的應用。

隨著需求的增加,這個應用程序的複雜性越來越高,資料庫交互問題、http伺服器問題、複雜的數據結構的操作問題越來越突出,John D. Hunter開始意識到MATLAB作為一門編程語言的局限性,所以他決定使用Python重新開始。 雖然Python彌補了所有的MATLAB中的不足,但是當時卻沒有一款符合他心意的繪圖工具。

John D. Hunter對這個繪圖工具有幾個要求:

  • 繪製的圖像必須是可用作列印出版的高質量圖像,文字顯示不能有鋸齒。

  • 支持PostScript語言,可將圖像保存為包含Tex排版的eps格式矢量圖

  • 可嵌入在圖形用戶界面中開發應用程序

  • 代碼簡單易讀,可以輕鬆的理解與擴展

  • 繪圖簡便

在尋找了一通沒有結果以後,John D. Hunter決定挽起袖子自己寫,於是他自己用Python寫一個拓展庫——Matplotlib。由於沒有任何計算機圖形設計的實際經驗, 所以John D. Hunter決定效仿他一直使用的繪圖方面確實做的非常優秀的MATLAB。這樣一來Matplotlib就更容易被熟悉了MATLAB的用戶接受了。

相比於MATLAB,Matplotlib有什麼優點?

雖然Matplotlib源於模仿MATLAB,但是它卻不同於MATLAB,與MATLAB相比它的優勢在於:

  1. 免費。MATLAB是一款商業軟體,價格不菲;而Matplotlib是開源免費的。

  2. Matplotlib是Python的拓展庫,所以繼承了Python語法的優點,面向對象、易讀、易維護、代碼簡潔優美。

  3. Matplotlib依託於Python,可藉助Python的強大豐富的拓展模塊嵌入在圖形用戶界面應用程序中,也可嵌入在網頁中。

實例分享


1.Matplotlib是一個非常強大的python 畫圖工具

2.我只要把我的數據表示出來,只需matlab其中簡簡單單幾個功能。對於matplotlib 來說,matlab 太專業。

3.能簡單的表達,誰還會用複雜的。

僅個人觀點


推薦閱讀:

matlab中lsqnonlin和lsqcurvefit的詳細解釋和使用方法是怎樣的?
如何確定學習編程的目標?就是說怎樣判斷一種語言將來可以做什麼?
1.7 億字小說《宇宙巨校閃級生》是怎麼用 VB 寫出來的?
怎樣學會編程的思考方式?
你什麼時候對 Erlang 感到絕望?

TAG:MATLAB | Python | 編程語言 | 教育 | 科技 |