code: def _compute_subplot_domains(widths, spacing):
      
      # normalize widths
      widths_sum = float(sum(widths))
      total_spacing = (len(widths) - 1) * spacing
      widths = [(w / widths_sum)*(1-total_spacing) for w in widths]
      domains = []
  
      for c in range(len(widths)):
          domain_start = c * spacing + sum(widths[:c])
          domain_stop = min(1, domain_start + widths[c])
          domains.append((domain_start, domain_stop))
  
      return domains
docs: Compute normalized domain tuples for a list of widths and a subplot
      spacing value
  
      Parameters
      ----------
      widths: list of float
          List of the desired withs of each subplot. The length of this list
          is also the specification of the number of desired subplots
      spacing: float
          Spacing between subplots in normalized coordinates
  
      Returns
      -------
      list of tuple of float