如何使IPython笔记本matplotlib图内联

我试图在Python 2.7.2和IPython 1.1.0上使用MacOS X上的IPython笔记本。

我不能让matplotlibgraphics显示内联。

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() 

而不是内联graphics,我得到这个:

 <matplotlib.figure.Figure at 0x110b9c450> 

matplotlib.get_backend()显示我有'module://IPython.kernel.zmq.pylab.backend_inline'后端。

我在笔记本的第一个单元格中使用了%matplotlib inline ,它工作正常。 我认为你应该尝试:

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

您也可以通过在configuration文件中设置以下configuration选项来默认以内联模式启动所有IPython内核:

 c.IPKernelApp.matplotlib=<CaselessStrEnum> Default: None Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] Configure matplotlib for interactive use with the default matplotlib backend. 

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

IPython 3.x及以上版本

 %matplotlib notebook import matplotlib.pyplot as plt 

旧版本

 %matplotlib nbagg import matplotlib.pyplot as plt 

两者都将激活nbagg后端 ,从而实现交互性。

示例与nbagg后端的情节

Ctrl + Enter

%matplotlib inline

魔术线:D

请参阅: 使用Matplotlib绘图 。

我不确定为什么华金张贴他的答案作为评论,但这是正确的答案:

ipython notebook --pylab inline启动ipython ipython notebook --pylab inline

编辑:好吧,这是现在不赞成下面的评论。 使用%pylab魔术。

在Jupyter(IPython 3)中默认内联matplotlib:

  1. 编辑文件~/.ipython/profile_default/ipython_config.py

  2. 添加行c.InteractiveShellApp.matplotlib = 'inline'

请注意,将此行添加到ipython_notebook_config.py将不起作用。 否则,它与Jupyter和IPython 3.1.0一起工作良好

我不得不同意foobarbecue(我没有足够的recs才能够在他的post下插入评论):

现在推荐python笔记本没有用参数--pylab启动,根据ipnthonnb的创build者Fernando Perez, %matplotlib inline应该是最初的笔记本命令。

看到这里: http : //nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebooks/Part%203%20-%20Plotting%20with%20Matplotlib.ipynb

我发现了一个相当令人满意的解决方法。 我安装了Anaconda Python ,现在这个工具对我来说是非常有用的。

我做了anaconda安装,但matplotlib不绘图

它开始阴谋当我这样做

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

在Ubuntu上,只要在创buildgraphics之后有plt.show() ,就可以删除%matplotlib inline

你可以用一个语法错误模拟这个问题,然而, %matplotlib inline不能解决这个问题。

首先是创build一个情节的正确方法的一个例子。 一切按预期与eNord9提供的import和魔法一起工作 。

 df_randNumbers1 = pd.DataFrame(np.random.randint(0,100,size=(100, 6)), columns=list('ABCDEF')) df_randNumbers1.ix[:,["A","B"]].plot.kde() 

但是,通过将()closures到plottypes的末尾,您会收到一些含糊不清的非错误。

猥亵代码:

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

示例错误:

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

除了这一行消息,没有堆栈跟踪或其他明显的理由认为你犯了一个语法错误。 情节不打印。