docstr: Return the aggregated data at the event position or *None* if the
  event is outside the bounds of the current view.
docstr_tok: ["Return","the","aggregated","data","at","the","event","position","or","*","None","*","if","the","event","is","outside","the","bounds","of","the","current","view","."]
code: def get_cursor_data(self, event):
      """
      Return the aggregated data at the event position or *None* if the
      event is outside the bounds of the current view.
      """
      xmin, xmax, ymin, ymax = self.get_extent()
      if self.origin == "upper":
          ymin, ymax = ymax, ymin
  
      arr = self.get_ds_data().data
      data_extent = Bbox([[ymin, xmin], [ymax, xmax]])
      array_extent = Bbox([[0, 0], arr.shape[:2]])
      trans = BboxTransform(boxin=data_extent, boxout=array_extent)
  
      y, x = event.ydata, event.xdata
      i, j = trans.transform_point([y, x]).astype(int)
  
      # Clip the coordinates at array bounds
      if not (0 <= i < arr.shape[0]) or not (0 <= j < arr.shape[1]):
          return None
      else:
          return arr[i, j]
  
imports: import warnings
  from matplotlib.image import _ImageBase
  from matplotlib.patches import Patch
  from matplotlib.transforms import Bbox, TransformedBbox, BboxTransform
  import matplotlib
  import numpy
  from .None import reductions
  from .None import transfer_functions
  from .colors import Sets1to3
  from .core import bypixel, Canvas
label_desc: Use image node_id 8 for calling the DSArtist obj's underlying member method code with example usage: obj.get_cursor_data(event) and returns: None, arr