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

Python 我可以暂时阻止Spyder显示内联图像吗?,python,matplotlib,ipython,spyder,Python,Matplotlib,Ipython,Spyder,在Spyder IDE中,我希望保留内联控制台打印,我不希望为每个打印生成单独的窗口,但我希望以编程方式禁用打印,即在不同的单元格中 在我的工作流程中,我需要绘制一些简单的图形,然后生成图形并将其保存为数千个视频帧。我的框架是通过加载jpg图像,然后覆盖一些注释来创建的,例如: for jpg_path in path_list: img = mpl.image.imread(jpg_path) ax.imshow(img) ax.text(etc...) fig

在Spyder IDE中,我希望保留内联控制台打印,我不希望为每个打印生成单独的窗口,但我希望以编程方式禁用打印,即在不同的单元格中

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

for jpg_path in path_list:
    img = mpl.image.imread(jpg_path)
    ax.imshow(img)
    ax.text(etc...)
    fig.savefig(etc...)
我想保留内联后端;%matplotlib内联

但是关闭plt.ioff之类的绘图功能

但是plt.ioffool只能与%matplotlib qt后端一起工作,而不是内联


我曾经有过几次忘记更改为%matplotlib qt的情况,因为它不是python命令,我必须单独将它输入控制台,然后输入plt.ioff-导致控制台中发布了10000个图像,冻结了我的机器

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

关键是行magics get_ipython.run_line_magic'matplotlib','inline'的python命令。我创建了一个上下文管理器来包装我的循环视频帧

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()
还是有更好的方法

你已经看过了吗,或者,或者?我是你的超级粉丝。