有很多资源可以解释原因 %matplotlib inline
内联显示图是必要的。例如。 Purpose of %matplotlib inline .但是,我觉得如果我们在您的 Jupyter Notebook 中使用更高版本的 IPython,则不再需要。这是因为我可以在运行或不运行 %matplotlib inline
的情况下内嵌显示图。 (每次我重新启动内核时,我使用的 IPython 版本是 7.17.0)。我的预感是,最近版本可能默认激活内联后端。
当我跑 %matplotlib
要在新 session 中检查当前后端,它会显示 Qt5Agg。运行后%matplotlib inline
, 当我通过运行 %matplotlib
再次检查时,它显示相同的 Qt5Agg。这让我觉得%matplotlib inline
是多余的,因为它没有改变任何东西。顺便说一句,我自己没有更改任何 IPython 配置。
但是,我没有看到任何官方文档说默认情况下会为 IPython 版本 x.x.x+ 激活内联后端。我找到了 this和 this Github 问题与我试图找到的问题很接近,但它并没有完全确认“如果您的 IPython 版本是 x.x.x+,您不再需要运行 %matplotlib inline
,因为这是默认行为”。我最近浏览了 IPython release notes ,但似乎并没有证实这个假设。
我的预感对吗?如果是这样,不需要哪些 IPython 版本?有没有官方文件这么说?如果没有,我怎么能在不运行的情况下进行内联绘图 %matplotlib inline
?
这似乎是 Why don't I need “%matplotlib inline” in my jupyter notebook? 的可能重复.我无法从这个线程中确认我的预感。
最佳答案
唯一的原因%matplotlib inline
用于渲染任何 matplotlib 图,即使 plt.show()
函数没有被调用。
但是,即使 %matplotlib inline
未使用,Jupyter 仍会将 Matplotlib 图显示为对象,类似 matplotlib.lines.Line2D object at 0x0392A9D0
在控制台中出现在它之前。
结论是不再需要了,但是,保持代码干净并调用您制作的图仍然是惯例,并且绝对推荐。
关于python - %matplotlib 还需要内联吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65934740/