docs: def fill_between(a, b, logy=None, axes=None, **kwargs):
      """
      Fill the region between two histograms or graphs.
  
      Parameters
      ----------
  
      a : Hist
          A rootpy Hist
  
      b : Hist
          A rootpy Hist
  
      logy : bool, optional (default=None)
          If True then clip the region between 1E-300 and 1E300.
          If None (the default) then automatically determine if the axes are
          log-scale and if this clipping should be performed.
  
      axes : matplotlib Axes instance, optional (default=None)
          The axes to plot on. If None then use the global current axes.
  
      kwargs : additional keyword arguments, optional
          Additional keyword arguments are passed directly to
          matplotlib's fill_between function.
  
      Returns
      -------
  
      Returns the value from matplotlib's fill_between function.
  
      """
      if axes is None:
          axes = plt.gca()
      if logy is None:
          logy = axes.get_yscale() == 'log'
      if not isinstance(a, _Hist) or not isinstance(b, _Hist):
          raise TypeError(
              "fill_between only operates on 1D histograms")
      a.check_compatibility(b, check_edges=True)
      x = []
      top = []
      bottom = []
      for abin, bbin in zip(a.bins(overflow=False), b.bins(overflow=False)):
          up = max(abin.value, bbin.value)
          dn = min(abin.value, bbin.value)
          x.extend([abin.x.low, abin.x.high])
          top.extend([up, up])
          bottom.extend([dn, dn])
      x = np.array(x)
      top = np.array(top)
      bottom = np.array(bottom)
      if logy:
          np.clip(top, 1E-300, 1E300, out=top)
          np.clip(bottom, 1E-300, 1E300, out=bottom)
      return axes.fill_between(x, top, bottom, **kwargs)