code: def hist(self, dimension=None, num_bins=20, bin_range=None,
               adjoin=True, **kwargs):
          
          from ..operation import histogram
          if not isinstance(dimension, list): dimension = [dimension]
          hists = []
          for d in dimension[::-1]:
              hist = histogram(self, num_bins=num_bins, bin_range=bin_range,
                               dimension=d, **kwargs)
              hists.append(hist)
          if adjoin:
              layout = self
              for didx in range(len(dimension)):
                  layout = layout << hists[didx]
          elif len(dimension) > 1:
              layout = Layout(hists)
          else:
              layout = hists[0]
          return layout
docs: Computes and adjoins histogram along specified dimension(s).
  
          Defaults to first value dimension if present otherwise falls
          back to first key dimension.
  
          Args:
              dimension: Dimension(s) to compute histogram on
              num_bins (int, optional): Number of bins
              bin_range (tuple optional): Lower and upper bounds of bins
              adjoin (bool, optional): Whether to adjoin histogram
  
          Returns:
              AdjointLayout of element and histogram or just the
              histogram