关于python:如何使IPython笔记本matplotlib内联

How to make IPython notebook matplotlib plot inline

我正在尝试在MacOSX上使用i python笔记本和python 2.7.2以及i python 1.1.0。

我不能让matplotlib图形以内联方式显示。

1
2
3
4
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

我还尝试过%pylab inline和ipython命令行参数--pylab=inline,但这没有区别。

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

我得到的不是内嵌图形:

1
<matplotlib.figure.Figure at 0x110b9c450>

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


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

1
2
3
4
5
%matplotlib inline

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

通过在配置文件中设置以下配置选项,您还可以在默认情况下以内联模式启动所有ipython内核:

1
2
3
4
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及以上

1
2
3
%matplotlib notebook

import matplotlib.pyplot as plt

旧版本

1
2
3
%matplotlib nbagg

import matplotlib.pyplot as plt

两者都将激活nbagg后端,从而启用交互。

Example plot with the nbagg backend


CtrL+enter

1
%matplotlib inline

魔术线:D

请参见:使用matplotlib进行绘图。


我不知道为什么Joaquin把他的答案作为评论发表,但这是正确的答案:

ipython notebook --pylab inline启动ipython

编辑:好的,现在根据下面的注释,这已被否决。使用%pylab inline魔法命令。


在jupyter(ipython 3)中默认使matplotlib内联:

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

  • 加行c.InteractiveShellApp.matplotlib = 'inline'

  • 请注意,将这一行添加到ipython_notebook_config.py将不起作用。否则,它与Jupyter和IPython 3.1.0配合得很好。


    我必须同意Foobarbecue的观点(我没有足够的记录来在他的帖子下面简单地插入评论):

    现在建议不要用--pylab这个参数来启动python notebook,根据ipythonnb的创建者fernando perez的说法,%matplotlib inline应该是最初的notebook命令。

    请参见:http://nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebook/part%203%20-%20Plotting%20with%20matplotlib.ipynb


    我找到了一个非常令人满意的解决方法。我安装了Python,现在这对我来说是现成的。


    我安装了水蟒,但Matplotlib没有策划

    当我这样做的时候它就开始策划

    1
    2
    3
    4
    import matplotlib
    import numpy as np
    import matplotlib.pyplot as plt
    %matplotlib inline

    在Ubuntu上,您可以删除%matplotlib inline,只要您在创建图形后拥有plt.show()


    您可以用语法错误来模拟这个问题,但是,%matplotlib inline不能解决这个问题。

    首先是创建绘图的正确方法的示例。一切都按预期工作,进口和魔术,巨大9供应。

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

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

    但是,通过将()保留在绘图类型的末尾,您会收到一个模糊的非错误。

    铁代码:

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

    示例错误:

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

    除了这条单行消息之外,没有堆栈跟踪或其他明显的理由认为您犯了语法错误。情节无法打印。