python - %matplotlib 还需要内联吗?

标签 python matplotlib jupyter-notebook ipython

有很多资源可以解释原因 %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+ 激活内联后端。我找到了 thisthis 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/

相关文章:

python - 如何改进我的数据集以增加 yolov4 对象检测框架中的 mAP

python - 了解 scikit 神经网络参数

python - Django - 以 10 为基数的 int() 的无效文字 python django

python - 如何将 GIF 动画写入 matplotlib 中的类文件缓冲区?

python - 在 GUI 嵌入图中使用 matplotlib Cursor 小部件

python - 在同一个 jupyter 单元中运行多个命令

python - 防止Scrapy在没有结果时生成空文件

bash - 无法连接到 Docker 提供的 Jupyter Notebook

python - 使用来自另一个笔记本的动态名称/字符串运行 jupyter notebook

python - 属性错误: 'FigureCanvasWxAgg' object has no attribute '_idletimer'