code: def strategy(data, params):
          
          vjust = params['vjust']
  
          y = data['y'].copy()
          y[np.isnan(y)] = 0
          heights = np.append(0, y.cumsum())
  
          if params['fill']:
              heights = heights / np.abs(heights[-1])
  
          data['ymin'] = np.min([heights[:-1], heights[1:]], axis=0)
          data['ymax'] = np.max([heights[:-1], heights[1:]], axis=0)
          # less intuitive than (ymin + vjust(ymax-ymin)), but
          # this way avoids subtracting numbers of potentially
          # similar precision
          data['y'] = ((1-vjust)*data['ymin'] + vjust*data['ymax'])
          return data
docs: Stack overlapping intervals.
  
          Assumes that each set has the same horizontal position