为什么savefig和plot命令必须位于IPython笔记本中的同一个单元格中?

时间:2015-03-04 16:40:37

标签: python matplotlib plot ipython-notebook

我试图从IPython笔记本中导出一些图。搜索我找到this question并可以对问题进行排序。正如在答案中所指出的那样,我必须在与savefig命令相同的单元格中调用plot

我的问题是,为什么这些电话必须在同一个小区?我的笔记本服务器是以--pylab=inline模式启动的。如果它不是内联的,那么情节输出就好了。

2 个答案:

答案 0 :(得分:4)

我认为您看到了IPython def show(close=None): """Show all figures as SVG/PNG payloads sent to the IPython clients. Parameters ---------- close : bool, optional If true, a ``plt.close('all')`` call is automatically issued after sending all the figures. If this is set, the figures will entirely removed from the internal list of figures. """ if close is None: close = InlineBackend.instance().close_figures try: for figure_manager in Gcf.get_all_fig_managers(): display(figure_manager.canvas.figure) finally: show._to_draw = [] # only call close('all') if any to close # close triggers gc.collect, which can be slow if close and Gcf.get_all_fig_managers(): matplotlib.pyplot.close('all') 代码库的part行为:

{{1}}

显示打开的数字后,所有打开的图都会关闭。

答案 1 :(得分:1)

之所以会这样,是因为默认情况下,在运行每个单元格后,IPython Notebook中使用的嵌入式后端将自动关闭所有matplotlib图形。您可以按照here的说明通过IPython.display.set_matplotlib_close更改此行为。