Zol*_*orj 7 python matplotlib ipython jupyter-notebook magic-command
有许多资源可以解释为什么%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 问题与我试图找到的很接近,但它没有完全确认“%matplotlib inline
如果你的 IPython 版本是 xxx+,你不再需要运行,因为它是默认行为”。我查看了 IPython 最近的发行说明,但似乎没有证实这个假设。
我的预感对吗?如果是这样,不需要哪些 IPython 版本?有没有官方文件这么说?如果没有,我怎么能在不运行的情况下进行内联绘图%matplotlib inline
?
这可能看起来像是在我的 jupyter 笔记本中为什么不需要“%matplotlib inline”的可能重复?. 我无法从这个线程中确认我的预感。
小智 4
使用的唯一原因%matplotlib inline
是即使plt.show()
未调用该函数,也可以渲染任何 matplotlib 图表。
但是,即使%matplotlib inline
不使用,Jupyter 仍会将 Matplotlib 图显示为对象,并matplotlib.lines.Line2D object at 0x0392A9D0
在控制台中显示在其前面。
终点是不再有必要了,但是,保持代码整洁并调用您制作的图仍然是惯例,并且绝对推荐。