code: def scatter_props(event):
      
      # Use only the first item, if multiple items were selected
      ind = event.ind[0]
  
      try:
          sizes = event.artist.get_sizes()
      except AttributeError:
          sizes = None
      # If a constant size/s was specified, don't return it
      if sizes is None or len(sizes) == 1:
          s = None
      else:
          s = sizes[ind]
  
      try:
          # Snap to the x, y of the point... (assuming it's created by scatter)
          xorig, yorig = event.artist.get_offsets().T
          x, y = xorig[ind], yorig[ind]
          return dict(x=x, y=y, s=s)
      except IndexError:
          # Not created by scatter...
          return dict(s=s)
docs: Get information for a pick event on a PathCollection artist (usually
      created with ``scatter``).
  
      Parameters
      -----------
      event : PickEvent
          The pick event to process
  
      Returns
      --------
      A dict with keys:
          `c`: The value of the color array at the point clicked.
          `s`: The value of the size array at the point clicked.
          `z`: Identical to `c`. Specified for convenience.
  
      Notes
      -----
      If constant values were specified to ``c`` or ``s`` when calling
      ``scatter``, `c` and/or `z` will be ``None``.