功能超全的强化学习画图脚本
相比于原始的Spinning up 的plot.py文件
原始画图效果:
线条多一点,就根本分不清谁是谁了。
加了九大功能:
- 可以直接在pycharm或者vscode执行,也可以用命令行传参;
- 按exp_name排序,而不是按时间排序;
- 固定好每个exp_name的颜色;
- 可以调节曲线的线宽,便于观察;
- 保存图片到本地,便于远程ssh画图~
- 自动显示全屏
- 图片自适应
- 针对颜色不敏感的人群,可以在每条legend上注明性能值,和性能序号
- 新功能,在plot_demo_files里面添加了同一个实验、四组不同随机种子的数据,便于大家测试和调参。
例程图:
注意:seaborn版本0.8.1
最终画图效果:
如果大家还有什么新的功能,我也可以想办法加上去~
多个子图绘制和图例legend位置调整:
如下图,如果是多个子图的绘制,需要利用group_plot.py脚本:
https://github.com/kaixindelele/DRLib/blob/main/spinup_utils/group_plot.py
这里的legend位置要调整到最底层,不能简单的用默认的best设置,需要替换成:
plt.legend(bbox_to_anchor=(x, y))
这里的y为负数,代表在子图的下面~
代码链接,有详细注释:
https://github.com/kaixindelele/DRLib/blob/main/spinup_utils/plot.py
关于强化学习绘图的其他优质教程:
尤其是关于tsplot和lineplot函数的使用:
以及设置画一些和spinningup格式不一样的图,可以参考下面的教程和代码。
但是如果画多组实验,全部功能的图,最好还是用我那个~
联系方式:
ps: 欢迎做强化的同学加群一起学习:
深度强化学习-DRL:799378128
欢迎关注知乎帐号:未入门的炼丹学徒
CSDN帐号:https://blog.csdn.net/hehedadaq
极简spinup+HER+PER代码实现:https://github.com/kaixindelele/DRLib