首页 > 解决方案 > 仍然需要 %matplotlib inline 吗?

问题描述

有许多资源可以解释为什么%matplotlib inline需要内联显示图。例如%matplotlib inline 的目的。但是,如果我们在您的 Jupyter Notebook 中使用更高版本的 IPython,我觉得不再需要。这是因为我可以在运行或不运行的情况下显示内联图%matplotlib inline(每次重新启动内核时,我使用的 IPython 版本是 7.17.0)。我的预感是,最近的版本可能默认激活内联后端。

当我运行%matplotlib以检查新会话的当前后端时,它显示 Qt5Agg。运行后%matplotlib inline,当我再次运行检查时%matplotlib,它显示相同的Qt5Agg。这让我觉得这%matplotlib inline是多余的,因为它没有改变任何东西。顺便说一句,我自己没有更改任何 IPython 配置。

但是,我没有看到任何官方文档说默认情况下为 IPython 版本 xxx+ 激活内联后端。我发现这个这个Github 问题与我试图找到的问题很接近,但它并没有完全确认“如果你的 IPython 版本是 xxx+,你不再需要运行%matplotlib inline,因为它是默认行为”。我浏览了 IPython 最近的发行说明,但似乎并没有证实这个假设。

我的预感对吗?如果是这样,它不需要哪些 IPython 版本?有没有官方文件这么说?如果没有,我怎么能在不运行的情况下内联绘图%matplotlib inline

这似乎与为什么我的 jupyter notebook 中不需要“%matplotlib inline”的重复?. 我无法从这个线程中确认我的预感。

标签: pythonmatplotlibjupyter-notebookipythonmagic-command

解决方案


使用的唯一原因%matplotlib inline是即使plt.show()未调用该函数也可以渲染任何 matplotlib 图。

但是,即使%matplotlib inline不使用,Jupyter 仍会将 Matplotlib 图显示为一个对象,matplotlib.lines.Line2D object at 0x0392A9D0在控制台中出现类似的东西。

终点是不再需要它,但是,保持代码干净并调用您制作的情节仍然是惯例,并且绝对推荐。


推荐阅读