首页 文章

如何使IPython笔记本matplotlib内联

提问于
浏览
653

我试图在MacOS X上使用Python 2.7.2和IPython 1.1.0上的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' 后端 .

10 回答

  • 2

    我在笔记本的第一个单元格中使用 %matplotlib inline 并且它可以工作 . 我想你应该试试:

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

    通过在配置文件中设置以下配置选项,您也可以始终以内联模式启动所有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.
    
  • 919

    我做了anaconda安装,但matplotlib没有密谋

    当我这样做时,它开始绘制

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

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

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

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

    请注意,将此行添加到 ipython_notebook_config.py 将不起作用 . 否则它适用于Jupyter和IPython 3.1.0

  • 10

    我不得不同意foobarbecue(我没有足够的记录,只能在他的帖子下插入评论):

    它起源于 --pylab ,根据费尔南多·佩雷斯(ipythonnb的创造者) %matplotlib inline 应该是最初的笔记本命令 .

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

  • 177

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

    IPython 3.x及以上

    %matplotlib notebook
    
    import matplotlib.pyplot as plt
    

    旧版本

    %matplotlib nbagg
    
    import matplotlib.pyplot as plt
    

    两者都将激活nbagg backend,从而实现交互性 .

  • 7

    我找到了一个非常令人满意的解决方法 . 我安装了Anaconda Python,这对我来说现在开箱即用 .

  • 4

    按Ctrl键

    %matplotlib内联

    魔术线:D

    见:Plotting with Matplotlib .

  • 77

    您可以使用语法错误来模拟此问题,但是, %matplotlib inline 将无法解决此问题 .

    首先是创建绘图的正确方法的示例 . 所有东西都按照预期的方式使用eNord9提供的进口和魔法 .

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

    除了这一行消息之外,没有堆栈跟踪或其他明显的理由认为您发生了语法错误 . 情节不打印 .

  • 5

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

  • 21

    我不确定为什么joaquin发表他的回答作为评论,但这是正确答案:

    ipython notebook --pylab inline 启动ipython

    编辑:好的,现在根据以下评论不推荐使用此功能 . 使用%pylab魔术 .

相关问题