From db9563ebf670e6cb61bcd33600914df339b61ab8 Mon Sep 17 00:00:00 2001 From: Peter Zhokhov Date: Tue, 6 Nov 2018 15:25:17 -0800 Subject: [PATCH] more examples of viz code usage in the docs --- baselines/common/plot_util.py | 12 +++++++++--- docs/viz/viz.md | 25 ++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/baselines/common/plot_util.py b/baselines/common/plot_util.py index 56f6f98..1d105c8 100644 --- a/baselines/common/plot_util.py +++ b/baselines/common/plot_util.py @@ -263,9 +263,15 @@ def plot_results( Curves in the same group have the same color (if average_group is False), or averaged over (if average_group is True). The default value is the same as default value for split_fn - average_group: bool - if True, will average the curves in the same group. The mean of the result is plotted, with lighter - shaded region around corresponding to the standard deviation, and darker shaded region corresponding to - the error of mean estimate (that is, standard deviation over square root of number of samples) + average_group: bool - if True, will average the curves in the same group and plot the mean. Enables resampling + (if resample = 0, will use 512 steps) + + shaded_std: bool - if True (default), the shaded region corresponding to standard deviation of the group of curves will be + shown (only applicable if average_group = True) + + shaded_err: bool - if True (default), the shaded region corresponding to error in mean estimate of the group of curves + (that is, standard deviation divided by square root of number of curves) will be + shown (only applicable if average_group = True) figsize: tuple or None - size of the resulting figure (including sub-panels). By default, width is 6 and height is 6 times number of sub-panels. diff --git a/docs/viz/viz.md b/docs/viz/viz.md index d54ca37..8d65816 100644 --- a/docs/viz/viz.md +++ b/docs/viz/viz.md @@ -27,9 +27,8 @@ And you can now start TensorBoard with: tensorboard --logdir=$OPENAI_LOGDIR ``` -## Loading summaries of the results +## Loading summaries of the results ([notebook](https://colab.research.google.com/drive/1Wez1SA9PmNkCoYc8Fvl53bhU3F8OffGm)) If the summary overview provided by tensorboard is not sufficient, and you would like to either access to raw environment episode data, or use complex post-processing notavailable in tensorboard, you can load results into python as [pandas](https://pandas.pydata.org/) dataframes. -The colab notebook with the full version of the code is available [here](https://colab.research.google.com/drive/1Wez1SA9PmNkCoYc8Fvl53bhU3F8OffGm) (use "Open in playground" button to get a runnable version) For instance, the following snippet: ```python @@ -106,12 +105,32 @@ The results are split into two groups based on batch size and are plotted on a s Showing all seeds on the same plot may be somewhat hard to comprehend and analyse. We can instead average over all seeds via the following command: + The lighter shade shows the standard deviation of data, and darker shade - -error in estimate of the mean (that is, standard deviation divided by square root of number of seeds) +error in estimate of the mean (that is, standard deviation divided by square root of number of seeds). Note that averaging over seeds requires resampling to a common grid, which, in turn, requires smoothing (using language of signal processing, we need to do low-pass filtering before resampling to avoid aliasing effects). You can change the amount of smoothing by adjusting `resample` and `smooth_step` arguments to achieve desired smoothing effect See the docstring of `plot_util` function for more info. +To plot both groups on the same graph, we can use the following: +```python +pu.plot_results(results, average_group=True, split_fn=lambda _: '') +``` +Option `split_fn=labmda _:'' ` effectively disables splitting, so that all curves end up on the same panel. + + + +Now, with many groups the overlapping shaded regions may start looking messy. We can disable either +light shaded region (corresponding to standard deviation of the curves in the group) or darker shaded region +(corresponding to the error in mean estimate) by using `shaded_std=False` or `shaded_err=False` options respectively. +For instance, + +```python +pu.plot_results(results, average_group=True, split_fn=lambda _: '', shaded_std=False) +``` +produces the following plot: + +