首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以阻止Spyder暂时显示内联图像吗?

我可以阻止Spyder暂时显示内联图像吗?
EN

Stack Overflow用户
提问于 2018-08-31 20:52:02
回答 1查看 928关注 0票数 0

在Spyder IDE中,我想保持内联控制台绘图(我不想为每个绘图生成单独的窗口),但我想以编程方式禁用绘图,即在不同的单元格中。

在我的工作流程中,我需要绘制一些简单的图形,然后生成图形并将它们保存为视频帧(数千帧)。我的帧是通过加载一个jpg图像,然后覆盖一些注释来创建的,例如;

代码语言:javascript
运行
复制
for jpg_path in path_list:
    img = mpl.image.imread(jpg_path)
    ax.imshow(img)
    ax.text(etc...)
    fig.savefig(etc...)

我想保留内联后端;%matplotlib inline

但是关闭使用plt.ioff()之类的工具进行打印。

plt.ioff()只适用于%matplotlib qt后端,而不适用于inline

我有过几次忘记更改为%matplotlib qt (因为它不是python命令,我必须分别在控制台中输入它)和plt.ioff()的情况-导致10000张图像被发布到控制台,冻结了我的机器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 21:05:25

好的,我想我找到了答案,多亏了这个答案;

https://stackoverflow.com/a/46360516/789215

关键是用于magics get_ipython().run_line_magic('matplotlib', 'inline')行的python命令。我创建了一个上下文管理器来包装我的视频帧for-loop;

代码语言:javascript
运行
复制
from IPython import get_ipython

class NoPlots:
    def __enter__(self):
        get_ipython().run_line_magic('matplotlib', 'qt')
        plt.ioff()
    def __exit__(self, type, value, traceback):
        get_ipython().run_line_magic('matplotlib', 'inline')
        plt.ion()

还是有更好的方法?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52115896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档