Package: rl-plotter
rl-plotterREADME|中文文档This is a simple tool which can plot learning curves easily for reinforcement learning (RL)Installationfrom PIPpip install rl_plotterfrom sourcepython setup.py installUsage1. add basic loggerAdd our logger in your code of evaluation (Recommend)fromrl_plotter.loggerimportLoggerlogger=Logger(exp_name="your_exp_name",env_name,seed,locals())····logger.update(score=evaluation_score_list,total_steps=current_training_steps)or just useOpenAI-spinningupto log (Support)or you can useOpenAI-baselinebench.Monitor (Not Recommend)env=logger.monitor_env(env)2. track other variables (Optional)if you want to track other variables, you can use our custom_logger:custom_logger=logger.new_custom_logger(filename,fieldnames=["variable 1","variable 2",...,"variable n"])custom_logger.update(fieldvalues=variable_value_list,total_steps=current_training_steps)3. plot the resultsAfter the training or when you are training your agent, you can plot the learning curves in this way:switch to log directory or multi log’s parent directory (default: ./)run command to plot:rl_plotter --save --showYou can also use seaborn kernel to get the same plot style asOpenAI-spinningup:rl_plotter_spinup --save --showExample1. commonly used commandsrl_plotter --save --show --filter HalfCheetah
rl_plotter --save --show --filter Ant --avg_group --shaded_std
rl_plotter --save --show --filter Swimmer --avg_group --shaded_std --shaded_err
rl_plotter --save --show --filter Walker2d --filename progress.txt --xkey TotalEnvInteracts --ykey AverageEpRet2. practical examplesrl_plotter --show --save --avg_group --shaded_err --shaded_stdrl_plotter --show --save --avg_group --shaded_err --shaded_std --filename q --filters Walker HalfCheetah --ykey bias real_q --yduel --style default --smooth 03. more specific usageyou can find all parameters which can custom the style of your curves usinghelprl_plotter --helpoptional arguments:
-h, --help            show this help message and exit
--fig_length          matplotlib figure length (default: 8)
--fig_width           matplotlib figure width (default: 6)
--style               matplotlib figure style (default: seaborn)
--title               matplotlib figure title (default: None)
--xlabel              matplotlib figure xlabel
--xkey                x-axis key in csv file (default: l)
--ykey                y-axis key in csv file (support multi) (default: r)
--yduel               duel y axis (use if has two ykeys)
--ylabel              matplotlib figure ylabel
--smooth              smooth radius of y axis (default: 10)
--resample            if not zero, size of the uniform grid in x direction
                      to resample onto. Resampling is performed via
                      symmetric EMA smoothing (see the docstring for
                      symmetric_ema). Default is zero (no resampling). Note
                      that if average_group is True, resampling is
                      necessary; in that case, default value is 512.
                      (default: 512)
--smooth_step         when resampling (i.e. when resample > 0 or
					  average_group is True), use this EMA decay parameter
                      (in units of the new grid step). See docstrings for
                      decay_steps in symmetric_ema or one_sided_ema functions. 
                      (default: 1.0)
--avg_group           average the curves in the same group and plot the mean
--shaded_std          shaded region corresponding to standard deviation of the group
--shaded_err          shaded region corresponding to error in mean estimate of the group
--legend_loc          location of legend
--legend_outside      place the legend outside of the figure
--borderpad           borderpad of legend (default: 0.5)
--labelspacing        labelspacing of legend (default: 0.5)
--no_legend_group_num don't show num of group in legend
--time                enable this will activate parameters about time
--time_unit           parameters about time, x axis time unit (default: h)
--time_interval       parameters about time, x axis time interval (default: 1)
--xformat             x-axis format
--xlim                x-axis limitation (default: None)
--log_dir             log dir (default: ./)
--filters             filter of dirname
--filename            csv filename
--show                show figure
--save                save figure
--dpi                 figure dpi (default: 400)Featurescustom logger, style, key, label, x-axis formatter, and so on ...filter of directory namemulti-experiment plottermultiple plotting kernels (native matplotlib plotting or seaborn plotting)compatible withOpenAI-baselinemonitor andOpenAI-spinningupcorresponding color for specific experimentmulti y key & duel y legendCiting the ProjectIf using this repository for your research or publication, please cite:@misc{rl-plotter,
  author = {Xiaoyu Gong},
  title = {RL-plotter: A plotter for reinforcement learning},
  year = {2020},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/gxywy/rl-plotter}},
}AcknowledgmentThe core of this tool is inspired bybaselines/plot_util.py