【问题标题】:Show new matplotlib graph further down Jupyter notebook在 Jupyter 笔记本下方显示新的 matplotlib 图
【发布时间】:2017-05-15 08:12:06
【问题描述】:

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

有什么方法可以在我正在运行的单元格下方显示一个新的绘图窗口?

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

更新:图片。

在图 1 中,我运行了第一个代码单元。图表显示在单元格下方。正如我所愿。

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

【问题讨论】:

  • 成功了!有趣的。我最初是 %matplotlib notebook 因为它允许交互。但是,似乎交互性会产生这种行为,因为原始图仍然可以更新。因此,与其在每个代码块下创建一个新图,不如简单地更新原始图。我能够使用您的解决方案或使用%matplotlib notebook,通过添加plt.ioff() 行使其工作。不过,希望有一种方法可以与新情节进行互动。有什么方法可以强制一个新的情节?
  • 你太棒了。成功了,谢谢!
  • 你想直接回答,以便我标记这个吗?

标签: python matplotlib jupyter-notebook


【解决方案1】:

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

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

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

但你想使用交互性。

因此,您应该在绘制第一个图形后定义一个新图形。为此,请在第一个绘图之后、第二个代码之前调用 plt.figure()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-11
    • 2017-04-28
    • 2017-08-17
    • 2020-07-22
    • 1970-01-01
    • 2021-03-22
    • 2019-03-17
    • 2017-05-15
    相关资源
    最近更新 更多