如何解决%matplotlib 还需要内联吗?
有很多资源可以解释为什么需要 %matplotlib inline
来显示内联图。例如。 Purpose of %matplotlib inline。但是,我觉得如果我们在您的 Jupyter Notebook 中使用更高版本的 IPython,则不再需要。这是因为我可以在运行或不运行 %matplotlib inline
的情况下内嵌显示图(每次我重新启动内核时,我使用的 IPython 版本是 7.17.0)。我的预感是,最近版本可能会默认激活内联后端。
当我运行 %matplotlib
以检查新会话的当前后端时,它显示 Qt5Agg。运行 %matplotlib inline
后,当我通过运行 %matplotlib
再次检查时,它显示相同的 Qt5Agg。这让我认为 %matplotlib inline
是多余的,因为它没有改变任何东西。顺便说一句,我自己没有更改任何 IPython 配置。
但是,我没有看到任何官方文档说默认情况下会为 IPython 版本 x.x.x+ 激活内联后端。我发现 this 和 this Github 问题与我试图找到的很接近,但它没有完全确认“如果您的 IPython 版本是 xx,您不再需要运行 %matplotlib inline
x+ 因为它是默认行为”。我浏览了 IPython 最近的 release notes,但似乎没有证实这个假设。
我的预感对吗?如果是这样,不需要哪些 IPython 版本?有没有官方文件这么说?如果没有,我怎么能在不运行 %matplotlib inline
的情况下进行内联绘图?
这似乎是 Why don't I need “%matplotlib inline” in my jupyter notebook? 的可能重复。我无法从这个帖子中确认我的预感。
解决方法
使用 %matplotlib inline
的唯一原因是即使未调用 plt.show()
函数也可以渲染任何 matplotlib 图。
然而,即使不使用 %matplotlib inline
,Jupyter 仍会将 Matplotlib 图显示为一个对象,并在控制台中出现类似 matplotlib.lines.Line2D object at 0x0392A9D0
之类的内容。
最后一点是不再需要了,但是,保持代码干净并调用您制作的图仍然是惯例,绝对推荐。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。