ipython --pylab
究竟幹什麼?ipython --pylab vs ipython
是ipython --pylab
正是等同於:
> ipython
> from pylab import *
如果不是,有什麼區別?
說我的IPython推出無的參數--pylab
,我怎樣才能把它相同的狀態,就像我曾與--pylab
開始呢?
ipython --pylab
究竟幹什麼?ipython --pylab vs ipython
是ipython --pylab
正是等同於:
> ipython
> from pylab import *
如果不是,有什麼區別?
說我的IPython推出無的參數--pylab
,我怎樣才能把它相同的狀態,就像我曾與--pylab
開始呢?
--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 *
我覺得命令行上的--pylab
選項等於使用%pylab
魔法。至少我是這樣使用它的。這也讓你有機會選擇繪圖後端,即%pylab inline
,%pylab qt
等
除了進口一個明顯的區別是交互式繪圖,您可以動態啓用:
import matplotlib
matplotlib.rcParams['interactive'] = True
或'ipython --matplotlib'設置後端並使其交互,但不導入所有pylab的東西。 – askewchan
我認爲對於'--pylab'標誌的激勵是使'ipython'一個MATLAB克隆,這樣MATLAB用戶切換到python/numpy/scipy/matplotlib不需要處理'import'語句。 – SethMMorton