python - 我可以阻止 Spyder 暂时显示内联图像吗?
问题描述
在 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()
仅适用于 ie%matplotlib qt
后端,不适用于inline
!
我有几种情况我忘记更改为%matplotlib qt
(因为它不是 python 命令,我必须将它单独输入到控制台中)然后plt.ioff()
- 导致 10000 张图像被发布到控制台中,从而冻结了我的机器。
解决方案
好的,多亏了这个答案,我想我找到了答案;
https://stackoverflow.com/a/46360516/789215
关键是行 magics 的 python 命令get_ipython().run_line_magic('matplotlib', 'inline')
。我创建了一个上下文管理器来包装我的视频帧 for-loop;
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()
还是有更好的方法?
推荐阅读
- java - java中的材质转换不起作用
- optimization - 影子价格 - XPRESS - 纸浆
- c - 使用make时PVM库(Parallel virtual machine)安装问题
- json - NSIS 快捷方式有什么问题?
- python - TensorFlow Lite 无法识别操作 VarHandleOp
- c# - 在 C# 中更新由 DataContractserializer 序列化的 xml 的单个元素?
- java - 如何使用 itext 2.1.7 在 PDF 中垂直创建矩形并添加文本
- css - 浏览器中的字体字形
- c++ - C++ - 如何在 CodeBlocks 中链接 OpenSSL 库?
- reactjs - 从反应前端上传带有 DRF 的图像