如何使IPython筆記本matplotlib繪圖內聯



Answers

如果你的matplotlib版本高於1.4,也可以使用

IPython 3.x及以上版本

%matplotlib notebook

import matplotlib.pyplot as plt

舊版本

%matplotlib nbagg

import matplotlib.pyplot as plt

兩者都會激活nbagg後端 ,從而實現交互性。

Question

我試圖在Python 2.7.2和IPython 1.1.0上使用MacOS X上的IPython筆記本。

我無法使matplotlib圖形顯示為內聯。

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline  

我也嘗試了%pylab inline和ipython命令行參數--pylab=inline但這沒什麼區別。

x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp')
plt.show()

而不是內聯圖形,我得到這個:

<matplotlib.figure.Figure at 0x110b9c450>

matplotlib.get_backend()表明我有'module://IPython.kernel.zmq.pylab.backend_inline'後端。




我不確定為什麼華金會將他的答案作為評論發布,但這是正確的答案:

ipython notebook --pylab inline啟動ipython

編輯:好的,現在根據下面的評論已經棄用了。 使用%pylab魔術。




你可以用一個語法錯誤來模擬這個問題,然而, %matplotlib inline不能解決問題。

首先是創建情節的正確方法的一個例子。 所有功能都可以像提供的導入和魔法一樣 。

df_randNumbers1 = pd.DataFrame(np.random.randint(0,100,size=(100, 6)), columns=list('ABCDEF'))

df_randNumbers1.ix[:,["A","B"]].plot.kde()

但是,通過將()關閉到劇情類型的末尾,您會收到一些含糊不清的非錯誤。

猥瑣的代碼:

df_randNumbers1.ix[:,["A","B"]].plot.kde

示例錯誤:

<bound method FramePlotMethods.kde of <pandas.tools.plotting.FramePlotMethods object at 0x000001DDAF029588>>

除了這一行消息之外,沒有堆棧跟踪或其他明顯的理由認為您犯了語法錯誤。 情節不打印。




在Ubuntu上,只要您在創建圖表後創建了plt.show() ,就可以刪除%matplotlib inline







Links