我希望在动画中多次重复使用matplotlib图形。基本工作流程是:
并多次重复步骤1,2。我希望使用相同的figure
实例的原因是我没有弹出新的窗口。
以下是示例代码:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
def init_animate(fig):
#plt.ion()
#fig = plt.figure()
ax = fig.add_subplot(111)
im_obj = ax.imshow(np.zeros((200,200,3)).astype(np.uint8))
#return fig, im_obj
return im_obj
def animate(i, im_obj):
im = np.zeros((200,200,3)).astype(np.uint8)
if np.mod(i,45) < 15:
im[:,:,0] = 255
elif np.mod(i,45) < 30:
im[:,:,1] = 255
else:
im[:,:,2] = 255
im_obj.set_data(im)
return im_obj,
def run_animate():
fig = plt.figure()
fig.set_animated(True)
for i in range(5):
im_obj = init_animate(fig)
anim = animation.FuncAnimation(fig, animate, frames=45,
interval=15, blit=False, fargs=[im_obj], repeat=False)
plt.ion()
plt.show(block=False)
matplotlib.interactive(False)
fig.clf(keep_observers=True)
当我运行run_animate
时,我只看到动画一次,但不是全部五次。如果我在figure
循环中创建新的for
,则一切都按预期工作。关于我可能缺少什么的任何指示?