我正在创建一个新的OpenAI Gym Environment,并希望显示一个我已经编码为使用Matplotlib显示的实时动画。
我尝试在render方法中绘制并调用plt.show(),但这会为每帧创建一个新窗口,并关闭旧的窗口以打开新的窗口。
我当前制作动画的代码:
fig = plt.figure(figsize=(10,10), dpi=80)
plt.axis([0, SIZE, 0, SIZE])
plt.xticks([])
plt.yticks([])
plt.hist2d(x,y, bins=10, range=[[0, SIZE], [0, SIZE]])
sc, = plt.plot(x, y, 'ro')
# Plot boids
def plot_boids(boids):
#... compute some stuff here ...
plt.hist2d(x,y, bins=10, range=[[0, SIZE], [0, SIZE]])
return sc.set_data(x, y)
def animate(i):
# ... compute some stuff here ...
fig = plot_boids(boids)
anim=animation.FuncAnimation(fig, animate, repeat=False,
blit=False, frames=100, interval=100)
plt.show()
有什么方法可以将plt动画方法直接集成到Gym的render方法中?