標籤:

用python的前輩們,pylab是matplotlib的一個模塊嗎,跟pyplot又是什麼關係呢?

剛開始看python的科學計算模塊,想先總體上了解一下各模塊,但感覺有點亂:

1、pylab是matplotlib的一個模塊嗎?

在python中是可以通過matplotlib.pylab導入的說明它應該是matlotlib的模塊。但同時直接導入pylab也行,而且在官網的模塊列表中並沒有pylab,官方指導中也只有很少幾處提及。

看別人博客,有說「pylab不僅包含matplotlib還包含numpy,導入pylab就不用導入numy了」,這樣它應該不是matplotlib的一個模塊。

此外pylab跟ipython的pylab模式又有什麼關係

2、pylab與pyplot是什麼關係?

「The matplotlib code is conceptually divided into three parts: the pylab interface is the set of functions provided by matplotlib.pylab which allow the user to create plots with code quite similar to MATLAB figure generating code (Pyplot tutorial). 」

Introduction


上面是官方指導的一段話,說matplotlib代碼可分為三類,第一類是pylab交互界面,但後面給的鏈接卻是pyplot的介紹,是弄錯了嗎,還是兩者有什麼關係?


1. 是。你 locate pylab.py 就知道了:matplotlib 放了個單獨的模塊在 /usr/lib/python3.3/site-packages/pylab.py,自己看其內容。

2. pyplot 是 matplotlib 的一個模塊。具體請看文檔。(可以執行 pydoc3 --p 3000 然後按 b 在瀏覽器里看)


看到官網寫了這麼一段話,應該可以解釋

pylab is a convenience module that bulk imports matplotlib.pyplot (for plotting) and numpy (for mathematics and working with arrays) in a single name space. Although many examples use pylab, it is no longer recommended.

還有這是stackoverflow上的解釋

python - Which is the recommended way to plot: matplotlib or pylab?


pylab將許多常用的module集中到統一的namespace,目標是提供一個類matlab的工作環境,使用者無需自行import所需功能。不過import explicitly是編程的好習慣,讓命名空間乾淨些,如無必要應避免使用pylab。

(pyplot是matplotlib的繪圖界面)


我記得pylab似乎更側重於交互(即ipython)中使用,一般編程用pyplot就可以了。


pylab是用來做互動式實驗用的

已經有了matplotlib.pyplot和numpy庫,用起來和matlab類似,可以省去很多包名。


推薦閱讀:

windows下如何安裝libxml2?
Python 中的 for 循環如何使用?
Python3 是否已經完成了取代 Python2 的歷史進程?
求一本 Python 3 的好書,入門級別或中等級別,求推薦?
Python操作MySQL資料庫安全嗎?

TAG:Python | Python3x |