我目前正在做一个PPO强化学习项目,使用pytorch和gymnasium自定义环境。Mi idea是每10次训练迭代,显示一个带有状态轨迹和策略所采取的动作的图。问题是matplotlib图只在第一次正确显示,然后不会在下一次更新。
我以前实现的方法如下:图是环境类的一个属性,在自定义类的初始化过程中,调用plt.ion()
方法,然后调用plt.subplots()
初始化fig和axes属性,经过10次迭代后,清除图中的轴,并使用ax[i].step()
方法再次绘制,最后调用plt.pause在执行训练循环之后重复该过程。
很可能问题是我不太理解matplotlib包的逻辑,解决这个问题的方法是修改两三行代码。我会感谢每一个建议。
1条答案
按热度按时间ubof19bj1#
几乎没有什么可继续的,所以我建议首先展示一些你使用的代码,以及到底发生了什么。
你提到使用plt.ion和plt.show,这不应该是必要的,因为ion是matplotlib的交互模式,这意味着图形会自动更新,而plt.show不需要使用。
此外,你正在使用健身房。健身房有功能内置的渲染数字。
字符串