在jupyter中使用Qt后端的Matplotlib动画

时间:2017-05-17 14:57:59

标签: python animation matplotlib jupyter

似乎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中的动画。

我正在使用python 2.7,matplotlib 2.0,笔记本服务器4.4.1。

我的问题是:

  1. 预计会出现这种情况吗?
  2. 有人可以复制这个吗?
  3. 使用matplotlib动画,Qt后端真的无法在Jupyter中运行吗?
  4. 如果是这样,有人知道这个的原因吗?

0 个答案:

没有答案