如何解决使用matplotlib内联,但执行完成后不要调用flush_figures
我喜欢将图显示在ipython内核的输出中。但是,最好跨多个单元格生成图形,然后在末尾调用plt.show()
(或类似名称)以显示图形。
就目前而言,当使用嵌入式后端,使用PDB在plt.close
上设置断点时,我得到以下堆栈跟踪:
[...]
-> return super(ZMQInteractiveShell,self).run_cell(*args,**kwargs)
[...]\ipython\core\interactiveshell.py(2664)run_cell()
-> self.events.trigger('post_execute')
[...]\ipython\core\events.py(88)trigger()
-> func(*args,**kwargs)
[...]\pylab\backend_inline.py(113)flush_figures()
-> return show(True)
[...]\pylab\backend_inline.py(42)show()
-> matplotlib.pyplot.close('all')
我相信我想阻止flush_figures
被调用。有什么方法可以从ipython的"post_execute"
事件中删除此事件?虽然我知道一个选择是切换到另一个后端(我见过有人建议%matplotlib agg
),但我希望保持当前显示图的行为,但仅当我调用{{ 1}}。也欢迎使用其他实现此目的的方法,例如不调用plt.show()
事件的备用后端。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。