【发布时间】:2018-02-01 13:42:08
【问题描述】:
我这样写一个matplotlib动画程序:
def animate(frame):
observation = env.render()
action = RL.choose_action(str(observation)) # TODO
action = [random.randint(0, 4) for i in range(ROBOT_NUM)] # TO BE DELETE TODO
env.step(action)
observation_ = env.render()
reward = env.reward
RL.learn(str(observation), action, reward, str(observation_)) # TODO
for i in range(TARGET_NUM):
patchs_target[i].center = (env.targets[i].x, env.targets[i].y)
for i in range(ROBOT_NUM):
patchs[i].center = (env.robots[i].x, env.robots[i].y)
patchs_inner[i].center = (env.robots[i].x, env.robots[i].y)
return patchs + patchs_inner + patchs_target
.....
anim = animation.FuncAnimation(fig, animate, init_func=init,frames=1, interval=UPDATE_INTERVAL, blit=True)
现在我想通过判断animate 函数中的条件来停止animation.FuncAnimation。比如if reward < 10然后停止animation.FuncAnimation,但我不知道如何处理。
或者是否有任何方法可以按条件停止animation.FuncAnimation?不是按动画时间。
【问题讨论】:
-
我想邀请您阅读minimal reproducible example。手头没有可运行的示例很难提供正确的答案。
标签: python animation matplotlib