class_docstr: RandomBenchmarkResult expands on Result to add methods specific
  to random strategy benchmarking.
  
  Args:
      * backtests (list): List of backtests
  
  Attributes:
      * base_name (str): Name of backtest being benchmarked
      * r_stats (Result): Stats for random strategies
      * b_stats (Result): Stats for benchmarked strategy
class_docstr_tok: ["RandomBenchmarkResult","expands","on","Result","to","add","methods","specific","to","random","strategy","benchmarking",".","Args",":","*","backtests","(","list",")",":","List","of","backtests","Attributes",":","*","base_name","(","str",")",":","Name","of","backtest","being","benchmarked","*","r_stats","(","Result",")",":","Stats","for","random","strategies","*","b_stats","(","Result",")",":","Stats","for","benchmarked","strategy"]
docstr: Plots the distribution of a given statistic. The histogram
  represents the distribution of the random strategies' statistic
  and the vertical line is the value of the benchmarked strategy's
  statistic.
  
  This helps you determine if your strategy is statistically 'better'
  than the random versions.
  
  Args:
      * statistic (str): Statistic - any numeric statistic in
        Result is valid.
      * figsize ((x, y)): Figure size
      * title (str): Chart title
      * bins (int): Number of bins
      * kwargs (dict): Passed to pandas hist function.
docstr_tok: ["Plots","the","distribution","of","a","given","statistic",".","The","histogram","represents","the","distribution","of","the","random","strategies","'","statistic","and","the","vertical","line","is","the","value","of","the","benchmarked","strategy's","statistic",".","This","helps","you","determine","if","your","strategy","is","statistically","'better'","than","the","random","versions",".","Args",":","*","statistic","(","str",")",":","Statistic","-","any","numeric","statistic","in","Result","is","valid",".","*","figsize","(","(","x",",","y",")",")",":","Figure","size","*","title","(","str",")",":","Chart","title","*","bins","(","int",")",":","Number","of","bins","*","kwargs","(","dict",")",":","Passed","to","pandas","hist","function","."]
code: def plot_histogram(
      self,
      statistic="monthly_sharpe",
      figsize=(15, 5),
      title=None,
      bins=20,
      **kwargs,
  ):
      """
      Plots the distribution of a given statistic. The histogram
      represents the distribution of the random strategies' statistic
      and the vertical line is the value of the benchmarked strategy's
      statistic.
  
      This helps you determine if your strategy is statistically 'better'
      than the random versions.
  
      Args:
          * statistic (str): Statistic - any numeric statistic in
            Result is valid.
          * figsize ((x, y)): Figure size
          * title (str): Chart title
          * bins (int): Number of bins
          * kwargs (dict): Passed to pandas hist function.
  
      """
      if statistic not in self.r_stats.index:
          raise ValueError(
              "Invalid statistic. Valid statistics"
              "are the statistics in self.stats"
          )
  
      if title is None:
          title = "%s histogram" % statistic
  
      plt.figure(figsize=figsize)
  
      ser = self.r_stats.loc[statistic]
  
      ax = ser.hist(bins=bins, figsize=figsize, density=True, **kwargs)
      ax.set_title(title)
      plt.axvline(self.b_stats[statistic], linewidth=4, color="r")
      ser.plot(kind="kde")
  
imports: from __future__ import division
  from copy import deepcopy
  import bt
  import ffn
  import pandas
  import numpy
  from matplotlib import pyplot
  import pyprind
  from tqdm import tqdm
label_desc: Use image node_id 2 for calling the RandomBenchmarkResult obj's underlying member method code with example usage: obj.plot_histogram(statistic, figsize, title, bins) without return types