我正在尝试使用 JupyterLab 在循环中更新交互式 matplotlib 图形。如果我在与循环不同的单元格中创建图形,我就可以执行此操作,但我更愿意创建图形并在同一单元格中运行循环。
简单代码示例:
import matplotlib.pyplot as plt
import time
%matplotlib widget
fig = plt.figure()
for i in range(5):
x = list(range(i+2))
xx = [x**2 for x in x]
plt.clf()
plt.plot(x, xx)
fig.canvas.draw()
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
如果fig = plt.figure()与循环位于同一单元格中,则在循环完成之前不会更新图形:
如果我在不同的单元格中创建图形,我会得到动态更新,但如果可能的话,我希望能够在同一单元格中创建图形,以便输出位于循环下方:
我在其他问题中尝试了几个答案(此处、此处和此处),但是它们似乎不适用于 JupyterLab 中的交互式图形。我使用jupyter/scipy-notebook docker 镜像作为我的环境,所以我相信一切都设置正确。
有什么方法可以在创建图形的同一单元格中获得动态更新吗?