我正在尝试为matplotlib动画生成数据。
我有一个data_gen函数用于matplotlib的"animation.FuncAnimation"函数,它被调用如下:
ani = animation.FuncAnimation(fig, update, frames=data_gen, init_func=init, interval=10, blit=True)
我的代码长这样:
def func(a):
a += 1
return a
b = 0
def data_gen():
global b
c = func(b)
b = c
yield c
很遗憾,这并不是我想要的!例如:
print(data_gen().__next__())
print(data_gen().__next__())
print(data_gen().__next__())
for k in data_gen():
print(k)
...会生成以下输出:
1
2
3
4
我原以为for循环会一直运行,但它并没有。(它在4处停止。)
我需要的行为是:
(1)为b设置初始值
(2)每次生成器运行时更新b
非常感谢您的建议!