似乎Qt后端不能用于Jupyter来动画一个情节。一般来说这是真的吗?
使用脚本中的Qt4Agg
或TkAgg
后端,下面显示的代码运行正常。使用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。
我的问题是: