我一辈子都无法让 iPython 显示动画情节。此代码直接取自 matplotlib 动画示例,使用普通的旧 python(aka python animate.py
)可以正常工作。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
line, = ax.plot(np.random.rand(10))
ax.set_ylim(0, 1)
def update(data):
line.set_ydata(data)
return line,
def data_gen():
while True: yield np.random.rand(10)
ani = animation.FuncAnimation(fig, update, data_gen, interval=100)
#plt.ion()
plt.show()
#while 1:
#plt.draw()
调用ipython --pylab auto animate.py
,ipython --pylab tk animate.py
两者都会导致窗口立即消失。如果我取消注释ion()
,plt.draw()
它只会绘制一个帧然后挂起。我需要使用 iPython,因为它比普通的 matplotlib 实现更加线程安全。
我究竟做错了什么?在 osx 10.8 上使用 python2.7.2 和 iPython 1.1 和 matplotlib 1.3