在Jupyter笔记本上显示新的matplotlib图表

时间:2016-12-31 06:52:04

标签: python matplotlib jupyter-notebook

我正在学习Matplotlib并使用Jupyter笔记本来跟踪我学到的每件事。但是,我遇到了一个问题,因为我有多个带有matplotlib代码的单元格。在我的第一个单元格中,我运行plt.show(),它在单元格下方输出一个图。在页面的下方,我还有一些其他代码,用于绘制新点,调整轴的大小等,然后运行plt.show() ....这有效,但将更改应用于第一个之后创建的原始图。细胞

有没有办法在我正在运行的任何一个单元格下面显示一个新的绘图窗口?

(我想这样做的原因:第一个单元格可能是一个显示如何绘制基本点集的示例。我希望这显示它自己的简单绘图。在页面的下方,我调整轴的大小并更改然而,当这个情节,我想看到一个单独的情节,或者可能是同一个情节重做(因为,它可以保持我绘制的原始点 - 不需要清除整个事物)但是用新的在这个更复杂的细胞下面的变化。)

更新:图片。

在图1中,我运行了第一个代码单元格。图表显示在单元格下方。就像我想要的那样。 enter image description here

在第二张图片中,我现在运行较低的代码块(标记为[3])。但是,这些更改将应用​​于位于其上方的绘图,因为它是最初创建的位置。但我想要一个新的情节,或者可能不是一个干净的新情节,但至少有一些方法可以在我刚刚跑过的单元格[3]下方显示该情节。 enter image description here

1 个答案:

答案 0 :(得分:3)

在评论中,您提到您正在使用%matplotlib notebook魔法,因为它允许交互性。

一种选择是停止使用交互性。

如您所见,您可以使用plt.ioff()关闭互动功能。您也可以完全停止使用%matplotlib notebook,而是使用%matplotlib inline(在笔记本顶部调用)。使用%matplotlib inline,您无需致电plt.show()

但你想使用互动。

所以你应该做的是在绘制第一个数字后定义一个新的数字。要执行此操作,请在第一个绘图之后,在第二个绘图的代码之前调用plt.figure()