2013-05-31 38 views
60

我看到,我可以積 Python的使用既:這是推薦的繪圖方式:matplotlib或pylab?

import matplotlib 
matplotlib.pyplot.plot(...) 

或者:

import pylab 
pylab.plot(...) 

這兩個使用相同的matplotlib繪圖代碼。

那麼,Python社區推薦哪一種作爲更好的繪圖方法呢?爲什麼?

+1

[pylab和pyplot之間有什麼區別?]可能的重複(http://stackoverflow.com/questions/11469336/what-is-the-difference-between-pylab-and-pyplot) – tacaswell

+8

自引用重複? –

回答

85

官方文檔:Matplotlib, pyplot and pylab: how are they related?

這兩項進口歸結都做同樣的事情,將運行完全相同的代碼,它只是不同的導入模塊的方式。

還要注意的是matplotlib有兩個界面層,由pyplot管理的狀態機層和OO接口pyplot是建立在頂部,看到How can I attach a pyplot function to a figure instance?

pylab是一個乾淨的方式批量導入整體轉換的有用的功能(pyplot狀態機功能,大部分爲numpy)整合到一個名稱空間中。這個存在的主要原因(根據我的理解)是使用ipython來製作一個非常漂亮的交互式shell,它或多或少地複製了MATLAB(使轉換更容易,因爲它適合玩耍)。見pylab.pymatplotlib/pylab.py

在一定程度上,這是純粹口味的問題,並取決於你在做什麼了一下。

如果嵌入在GUI(使用非交互的後臺批量腳本或使用所提供的交互式後端之一)典型的事情是

import matplotlib.pyplot as plt 
import numpy as np 

plt.plot(....) 

它沒有按」 t污染名字空間。我更喜歡這個,所以我可以跟蹤東西來自哪裏。

如果使用

ipython --pylab 

這相當於跑步

from pylab import * 

它現在建議爲ipython新版本使用

ipython --matplotlib 

這將設置所有正確的背景細節使交互式後端能夠很好地工作噸不會批量導入任何東西。您需要明確導入所需的模塊。

import numpy as np 
import matplotlib.pyplot as plt 

是一個好的開始。

如果你在GUI中嵌入matplotlib你不想導入pyplot,因爲這會啓動額外的gui主循環,而你應該導入的內容取決於你正在做什麼。

+14

pylab和pyplot的區別在於前者將numpy導入到它的命名空間中。這是爲了使它與matlab更加類似。現在使用pyplot代替pylab是因爲它更清潔。 – ianalis

相關問題