【问题标题】:Jupyter-lab pyplot cell re-evaluation breaks interactive widget displayJupyter-lab pyplot 单元格重新评估打破了交互式小部件显示
【发布时间】:2021-01-18 07:35:32
【问题描述】:

此代码在干净启动的内核上按预期工作,但在重新执行第二个单元时,而不是交互式小部件(ipypml per https://matplotlib.org/3.3.0/users/interactive.html),我得到的只是图像中的文本输出。

jupyter、jupyter-lab、widgets、pyplot 和 matplotlib 是如何相互作用导致这个问题的?

我该如何正确地绘制一个情节,这样我就可以在不重新启动内核的情况下重新执行单元格?

单元格 0:

%matplotlib widget
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

单元格 1:

fig,ax = plt.subplots(num=0)
ax.plot(np.arange(4))

单元格 1 输出:

[<matplotlib.lines.Line2D at 0x161b913a0>]

【问题讨论】:

    标签: matplotlib jupyter-lab ipywidgets


    【解决方案1】:

    我发现我需要确保图形在每次更新中都能干净地打开(或关闭并重新打开)。我使用了plt.subplots(num=0) 选项来防止重复更新创建新的、未显示的图形。 (请注意,屏幕截图中的第 2 个单元格已被重新执行 5 次并带有 [6] 前缀)

    plt.close(0)
    fig,ax = plt.subplots(num=0)
    ax.plot(np.arange(4))
    

    【讨论】:

      猜你喜欢
      • 2019-03-06
      • 2020-03-20
      • 1970-01-01
      • 2019-09-16
      • 2021-04-10
      • 2017-01-13
      • 2013-05-22
      • 2019-04-30
      • 2021-08-01
      相关资源
      最近更新 更多