code: def _infer_xy_labels(darray, x, y, imshow=False, rgb=None):
      
      assert x is None or x != y
      if imshow and darray.ndim == 3:
          return _infer_xy_labels_3d(darray, x, y, rgb)
  
      if x is None and y is None:
          if darray.ndim != 2:
              raise ValueError('DataArray must be 2d')
          y, x = darray.dims
      elif x is None:
          if y not in darray.dims and y not in darray.coords:
              raise ValueError('y must be a dimension name if x is not supplied')
          x = darray.dims[0] if y == darray.dims[1] else darray.dims[1]
      elif y is None:
          if x not in darray.dims and x not in darray.coords:
              raise ValueError('x must be a dimension name if y is not supplied')
          y = darray.dims[0] if x == darray.dims[1] else darray.dims[1]
      elif any(k not in darray.coords and k not in darray.dims for k in (x, y)):
          raise ValueError('x and y must be coordinate variables')
      return x, y
docs: Determine x and y labels. For use in _plot2d
  
      darray must be a 2 dimensional data array, or 3d for imshow only.