簡體   English   中英

我可以阻止Spyder臨時顯示嵌入式圖像嗎?

[英]Can I prevent Spyder from displaying inline images temporarily?

在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 inline

但是請使用諸如plt.ioff()類的plt.ioff()關閉繪圖。

但是plt.ioff()僅適用於%matplotlib qt后端,而不適用於inline

我有幾種情況我忘記更改為%matplotlib qt (因為它不是python命令,我必須將其分別輸入到控制台中),然后再plt.ioff() -導致在控制台中發布了10000張圖像,凍結我的機器。

好的,我想我找到了答案,這要歸功於這個答案。

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

關鍵是用於行get_ipython().run_line_magic('matplotlib', 'inline')的python命令get_ipython().run_line_magic('matplotlib', 'inline') 我創建了一個上下文管理器來包裝我的視頻幀。

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()

還是有更好的方法?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM