code: def overlay(self, dimensions=None, **kwargs):
          
          dimensions = self._valid_dimensions(dimensions)
          if len(dimensions) == self.ndims:
              with item_check(False):
                  return NdOverlay(self, **kwargs).reindex(dimensions)
          else:
              dims = [d for d in self.kdims if d not in dimensions]
              return self.groupby(dims, group_type=NdOverlay, **kwargs)
docs: Group by supplied dimension(s) and overlay each group
  
          Groups data by supplied dimension(s) overlaying the groups
          along the dimension(s).
  
          Args:
              dimensions: Dimension(s) of dimensions to group by
  
          Returns:
              NdOverlay object(s) with supplied dimensions