jupy中Qt后端的Matplotlib动画

2024-04-25 17:50:49 发布

您现在位置:Python中文网/ 问答频道 /正文

似乎Qt后端不能在Jupyter中用于动画情节。一般来说是真的吗?在

下面显示的代码在脚本中使用Qt4AggTkAgg后端运行良好。使用Jupyter笔记本中的笔记本后端(%matplotlib notebook)或tk后端(%matplotlib tk)也可以很好地运行。在

但是,在Jupyter中使用%matplotlib qt(或%matplotlib qt4)时,窗口冻结,内核死亡。在

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation 

y = np.cumsum(np.random.normal(size=30))

fig, ax = plt.subplots()
line, = ax.plot(np.arange(len(y)),y)
ax.set_xlim(0,30)
ax.set_ylim(y.min(),y.max())

def update(i):
    x = np.arange(i)
    line.set_data(x,y[:i])

ani = matplotlib.animation.FuncAnimation(fig, update, frames=30, repeat=False)
plt.show()

注释掉ani = matplotlib.animation.FuncAnimation(...)行后,将出现该窗口,并对使用中的%matplotlib qt后端保持响应。因此,%matplotlib qt似乎无法在Jupyter中使用动画。在

我使用的是python2.7,matplotlib2.0,notebookserver4.4.1。在

我的问题是:

  1. 这种行为是预期的吗?在
  2. 有人能复制这个吗?在
  3. Qt后端真的不能在Jupyter中使用matplotlib动画吗?在
  4. 如果是这样,有人知道原因吗?在

Tags: importmatplotlibasnpfig笔记本jupyter动画