如何将绘图命令添加到多个单元格中的图形,但最后只显示它?

时间:2017-05-22 16:39:10

标签: matplotlib jupyter-notebook jupyter

我想在Jupyter笔记本中执行以下操作:

  • 在单元格中创建pyplot.figure;
  • 对于每个后续单元格,计算值并将它们绘制到相同的图形而不显示任何内容;
  • 最后,在另一个单元格中,显示带有每个上一个绘图命令结果的图形。

目前,在使用%matplotlib notebook时,图表始终会在创建相同的单元格后显示,而我甚至不会拨打plt.show()

这不是我想要的行为。相反,我想推迟最后一个单元格的图形显示,但当然应该包含在其间的单元格中调用的连续绘图命令的结果。

1 个答案:

答案 0 :(得分:3)

您可以使用魔术命令%%capture捕获jupyter笔记本的单元格内容。您还可以通过在其末尾添加;来隐藏特定行的任何输出。

通过简单地键入存储图形的变量,例如,可以显示该图形。 fig

结合这些技术可以提供

import matplotlib.pyplot as plt
%matplotlib notebook

%%capture captured
fig, ax=plt.subplots()

ax.plot([1,2,3]);

fig  # now show the figure

在这样的acutal笔记本中可能更容易理解: enter image description here

另见How to overlay plots from different cells?