code: def overlay(self, dimensions=None, **kwargs):
          
          if dimensions is None:
              dimensions = self.kdims
          else:
              if not isinstance(dimensions, (list, tuple)):
                  dimensions = [dimensions]
              dimensions = [self.get_dimension(d, strict=True)
                            for d in dimensions]
          dims = [d for d in self.kdims if d not in dimensions]
          return self.groupby(dims, group_type=NdOverlay)
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