在pymarl中,我们经常会使用到绘图脚本plot_result.py,但是有时候对该脚本的用法了解并不全面,重写的话由太费事,所以总结了一下。
该脚本用于从指定目录中加载强化学习实验结果,并生成相应的图表。
- 基本用法
命令行运行
python plot_results.py --path <results_directory> --metric <metric_name>
<results_directory>:包含实验结果的文件夹路径。<metric_name>:要绘制的指标名称(默认为test_return_mean)。
示例
python plot_results.py --path ./results --metric test_return_mean
- 可选参数
2.1 过滤算法和环境
--filter_by_algs:仅显示包含指定字符串的算法。--filter_by_envs:仅显示包含指定字符串的环境。
示例
python plot_results.py --path ./results --metric test_return_mean --filter_by_algs PPO SAC --filter_by_envs HalfCheetah
2.2 设置保存路径
--save_dir:指定保存图表的文件夹路径(默认为当前工作目录)。
示例
python plot_results.py --path ./results --metric test_return_mean --save_dir ./plots
2.3 设置 Y 轴范围
--y_min和--y_max:设置 Y 轴的最小值和最大值。
示例
python plot_results.py --path ./results --metric test_return_mean --y_min 0 --y_max 1000
2.4 对数尺度
--log_scale:启用 Y 轴的对数尺度。
示例
python plot_results.py --path ./results --metric test_return_mean --log_scale
2.5 数据平滑
--smoothing_window:指定平滑窗口大小以平滑数据曲线。
示例
python plot_results.py --path ./results --metric test_return_mean --smoothing_window 10
2.6 只显示最佳配置
--best_per_alg:仅绘制每种算法的最佳配置结果。
示例
python plot_results.py --path ./results --metric test_return_mean --best_per_alg
- 完整示例
示例 1:绘制所有实验结果并保存图表
python plot_results.py --path ./results --metric test_return_mean --save_dir ./plots
示例 2:过滤特定算法和环境
python plot_results.py --path ./results --metric test_return_mean --filter_by_algs PPO SAC --filter_by_envs HalfCheetah Ant
示例 3:设置 Y 轴范围和对数尺度
python plot_results.py --path ./results --metric test_return_mean --y_min 0 --y_max 1000 --log_scale
示例 4:平滑数据并只显示最佳配置
python plot_results.py --path ./results --metric test_return_mean --smoothing_window 10 --best_per_alg
- 脚本功能总结
- 加载结果:从指定目录加载所有实验结果文件(
metrics.json和config.json)。 - 过滤数据:根据算法名称和环境名称筛选数据。
- 聚合数据:对相同配置的结果进行平均和标准差计算。
- 平滑数据:对时间序列数据进行滑动窗口平滑处理。
- 绘制图表:生成带有置信区间的折线图,并支持多种自定义选项(如 Y 轴范围、对数尺度等)。
- 保存图表:将生成的图表保存为 PDF 文件。
- 注意事项
- 确保实验结果文件夹中包含
metrics.json和config.json文件。 - 如果没有指定
--save_dir,图表会保存在当前工作目录。 - 如果没有找到匹配的指标或配置文件,脚本会发出警告并跳过相关文件。

被折叠的 条评论
为什么被折叠?



