%matplotlib inline不能在iPython和Jupyter控制台上运行

时间:2017-03-06 02:49:45

标签: python matplotlib ipython jupyter

我第一次尝试使用Jupyter控制台,但无法使%matplotlib inline魔法发挥作用。以下是示例会话的屏幕截图:

The window is a result of Line 6, and Line 7 didn't do anything at all. 在我运行第6行后,该图显示在一个单独的窗口中,第7行没有做任何事情。

当我运行%matplotlib --list时,inline作为选项之一:

Available matplotlib backends: ['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt',
'nbagg', 'agg', 'gtk', 'tk', 'ipympl', 'inline']

当我尝试使用另一个后端时,请说qt5,它会显示错误消息,因为我没有安装任何Qt。

ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5, or PySide
package to be installed, but it was not found.

运行%matplotlib??读取:

 If you are using the inline matplotlib backend in the IPython Notebook
        you can set which figure formats are enabled using the following::

            In [1]: from IPython.display import set_matplotlib_formats

            In [2]: set_matplotlib_formats('pdf', 'svg')

        The default for inline figures sets `bbox_inches` to 'tight'. This can
        cause discrepancies between the displayed image and the identical
        image created using `savefig`. This behavior can be disabled using the
        `%config` magic::

            In [3]: %config InlineBackend.print_figure_kwargs = {'bbox_inches':None}

但我不知道是否可以通过调整来解决我的问题。

当我尝试神奇的IPython控制台时,它说inlineUnknown Backend

UnknownBackend: No event loop integration for u'inline'. Supported event loops are: qt, 
qt4, qt5, gtk, gtk2, gtk3, tk, wx, pyglet, glut, osx

我在谷歌搜索后也发现了this issue on github,但我甚至不知道它是否与我的情况有关(他们的大多数谈话都没有意义我哈哈)。

最后,我不确定这个问题是否完全相关,但在这里,以防万一:当我尝试通过!vim命令在Jupyter中打开Vim时,它会出现故障,即使没有关闭终端altogther,我甚至可以退出Jupyter。然而,当在IPython控制台中调用时,Vim工作得非常好。

我正在使用matplotlib 2.0.0

如果有人能帮助我解决这个问题,那就太棒了!谢谢!

3 个答案:

答案 0 :(得分:10)

您正在运行一个完全基于文本且无法显示图像的控制台。因此,虽然inline可用,但它不会生成内联输出。

我不确定为什么它不会抛出错误,但它在我的情况下会这样做:

enter image description here

您可以在GUI控制台中使用%matplotlib inline,例如Jupyter QTConsole

enter image description here

或浏览器中的jupyter笔记本

enter image description here

答案 1 :(得分:0)

%matplotlib(不带inline)对我有用(我使用的是osx和IPython 7.0.1)

答案 2 :(得分:-1)

如果您正在运行旧版本的ipython,请尝试使用%pylab inline。见notes in this tutorial