2013-12-11 71 views
9

ipython --pylab究竟幹什麼?ipython --pylab vs ipython

ipython --pylab正是等同於:

> ipython 
> from pylab import * 

如果不是,有什麼區別?

說我的IPython推出無參數--pylab,我怎樣才能把它相同的狀態,就像我曾與--pylab開始呢?

+1

我認爲對於'--pylab'標誌的激勵是使'ipython'一個MATLAB克隆,這樣MATLAB用戶切換到python/numpy/scipy/matplotlib不需要處理'import'語句。 – SethMMorton

回答

20

--pylab[=option]幾乎是在技​​術上等同於%pylab option,因爲您不能解開內核的--pylab內核,但可以重新啓動%pylab內核。

%pylab是多一點,只是from pylab import *(見%pylab?對於更詳細的解釋),但總之是的,它進口了很多東西,但也掛鉤事件循環(QT,WX,OSX ...),並設置一些matplotlib的顯示鉤子(魔法允許你獲得內聯圖的東西)。如果你想知道如何設置顯示鉤子更接近sympy.init_printing()

請注意,從IPython 1.0開始,我們建議不要使用--pylab%pylab(除非您確切地知道含義)。我們提供%matplotlib只有初始化顯示掛鉤。 %pylab將警告您是否替換當前名稱空間中的某個對象,以及哪些對象。這對於sum等功能非常有用,它們在具有和不具有pylab的情況下具有相同的行爲並導致微妙的錯誤。

我們現在認爲--pylab是一個錯誤,但它在IPython的開始仍然非常有用。我們都知道,Explicit is better than implicit所以如果你可以建議人們不要使用%pylab我們將不勝感激,有一天擺脫它。從%pylab幫助

提取物,只給pylab進口部分:

%pylab makes the following imports:: 

import numpy 
import matplotlib 
from matplotlib import pylab, mlab, pyplot 
np = numpy 
plt = pyplot 

from IPython.display import display 
from IPython.core.pylabtools import figsize, getfigs 

from pylab import * 
from numpy import * 
2

我覺得命令行上的--pylab選項等於使用%pylab魔法。至少我是這樣使用它的。這也讓你有機會選擇繪圖後端,即%pylab inline%pylab qt

3

除了進口一個明顯的區別是交互式繪圖,您可以動態啓用:

import matplotlib 
matplotlib.rcParams['interactive'] = True 
+0

或'ipython --matplotlib'設置後端並使其交互,但不導入所有pylab的東西。 – askewchan