使用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 (将#修改为@)