Jupyterlab / Notebook 中的交互式 matplotlib 图(使用 ipympl 的 %matplotlib 小部件)仅工作一次然后消失

Interactive matplotlib plot in Jupyterlab / Notebook (%matplotlib widget using ipympl) only works once then disappears

我再次尝试在 Jupyter Notebooks 中为我的学生使用交互式 matplotlib 图。我的计划是使用 JupyterLab,因为普通的 Notebook 界面在学生中不是很受欢迎。这是一个双单元 MWE 笔记本:

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

下一个单元格:

plt.figure(1)
x = np.arange(100)
y = x*x
plt.plot(x,y)
plt.show()

当我 运行 这些单元格时,我确实得到了一个交互式 Matplotlib 图。但是当我第二次 运行 第二个单元格时,情节 window 消失而没有警告或错误,只有当我重新 运行 第二个单元格之前的第一个单元格时才会回来。经典笔记本界面显示相同的行为,删除 plt.show()plt.figure() 也没有区别。

我运行在 venv 环境中的 Windows 10 机器上本地安装 Jupyter 服务器,安装了以下版本:

Python           : 3.8.2
ipympl           : 0.7.0

jupyter core     : 4.7.1
jupyter-notebook : 6.3.0
qtconsole        : not installed
ipython          : 7.23.1
ipykernel        : 5.5.4
jupyter client   : 6.1.12
jupyter lab      : 3.0.14
nbconvert        : 6.0.7
ipywidgets       : 7.6.3
nbformat         : 5.1.3
traitlets        : 5.0.5

在我的非专家眼中,启动期间的消息似乎没问题:

[I 2021-05-12 10:10:48.065 LabApp] JupyterLab extension loaded from d:\envs\pyfda_38\lib\site-packages\jupyterlab
[I 2021-05-12 10:10:48.065 LabApp] JupyterLab application directory is D:\envs\pyfda_38\share\jupyter\lab
[I 2021-05-12 10:10:48.069 ServerApp] jupyterlab | extension was successfully loaded.
[I 2021-05-12 10:10:48.488 ServerApp] nbclassic | extension was successfully loaded.
[I 2021-05-12 10:10:48.489 ServerApp] Serving notebooks from local directory: D:\Daten\xxx
[I 2021-05-12 10:10:48.489 ServerApp] Jupyter Server 1.6.4 is running at:
[I 2021-05-12 10:10:48.489 ServerApp] http://localhost:8888/lab?token=xxxx

我收到的唯一(可能)相关警告是

[W 2021-05-12 10:10:55.256 LabApp] Could not determine jupyterlab build status without nodejs 

是我做错了什么,还是使用 ipympl 的交互式绘图还不够成熟,无法用于 BYOD 课程?

每次通过将魔术命令移动到第二个单元格来激活 matplotlib 交互支持时有效:

%matplotlib widget
plt.figure(1)
x = np.arange(100)
y = x*x
plt.plot(x,y)
plt.show()