title: How can a color fill be done between two histogram lines with matplotlib?
body: <p>I have two histograms (signal and background) and each of them have upper and lower uncertainty bounds. I would like to plot each histogram as using only a colored edge with no fill and then to plot the upper and lower uncertainty histograms with their own colored edges with no fill, and then to have the region between the upper and lower histograms filled, as a sort of undertainty band. How might this be achieved?</p>
  
  <p>Here's the very rough code I have just now (which can be used in Jupyter):</p>
  
  <pre><code>import matplotlib.pyplot as plt
  import numpy as np
  from pylab import normal
  import seaborn as sns
  sns.set(context="paper", font="monospace")
  import warnings
  warnings.filterwarnings('ignore')
  
  %matplotlib inline
  plt.rcParams["figure.figsize"] = [8, 8]
  plt.rc("text", usetex=True)
  plt.rc("font", family="serif")
  
  s    = normal(1, .2, 5000)
  s_up = normal(1, .2, 5500)
  s_dn = normal(1, .2, 4600)
  b    = normal(2, .2, 2500)
  
  ns, bins, patches = plt.hist(
      [s, s_up, s_dn, b],
      color=['r', 'g', 'g', 'b'],
      label=['signal nominal', 'signal upper bound', 'signal lower bound', 'background'],
      alpha=0.5,
      linewidth=1,
      histtype='stepfilled');
  plt.setp(patches[0], edgecolor='r')
  plt.setp(patches[1], edgecolor='b')
  plt.legend();
  plt.show();
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/Sa3do.png" alt=""></p>