jupyterlab 中的 matplotlib 散点动画在初始帧后消失

matplotlib scatter animation in jupyterlab vanishes after initial frame

我有一个 JupyterLab 笔记本 (v1.1.4),我试图在其中制作散点图的动画。我尝试使用 matplotlib 示例中的 raindrops 示例,它运行良好,但我无法正常工作。

这是一个 MWE

%matplotlib widget
import random
import matplotlib.pyplot as plt
import matplotlib.animation as anim

fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
p1, p2 = [], []

points = 10
for member in range(points):
    p1.append(random.random())
    p2.append(random.random())
scat = ax.scatter(p1,p2)

def animator(i):
    for idx in range(points):
        p1[idx] = random.random()
        p2[idx] = random.random()
    scat.set_offsets([p1, p2])

animation = anim.FuncAnimation(fig, animator, 50, interval=100)

它简要地显示了第一帧,但是当动画启动时,我得到一个空白图形。小部件仍然存在,但其中没有任何内容,甚至没有轴框架。

我在交互式会话而不是笔记本中尝试了 运行。我收到以下错误:

ValueError: 'vertices' must be a 2D list or array with shape Nx2

原来 [p1,p2] 列表需要转置。我将此列表转换为一个 numpy 数组并将其转置等。