code: def on_change_plot_cursor(self,event):
          
          if not self.xdata or not self.ydata: return
          pos=event.GetPosition()
          width, height = self.canvas.get_width_height()
          pos[1] = height - pos[1]
          xpick_data,ypick_data = pos
          xdata_org = self.xdata
          ydata_org = self.ydata
          data_corrected = self.map.transData.transform(vstack([xdata_org,ydata_org]).T)
          xdata,ydata = data_corrected.T
          xdata = list(map(float,xdata))
          ydata = list(map(float,ydata))
          e = 4e0
  
          if self.plot_setting == "Zoom":
              self.canvas.SetCursor(wx.Cursor(wx.CURSOR_CROSS))
          else:
              self.canvas.SetCursor(wx.Cursor(wx.CURSOR_ARROW))
          for i,(x,y) in enumerate(zip(xdata,ydata)):
              if 0 < sqrt((x-xpick_data)**2. + (y-ypick_data)**2.) < e:
                  self.canvas.SetCursor(wx.Cursor(wx.CURSOR_HAND))
                  break
          event.Skip()
docs: If mouse is over data point making it selectable change the shape of the cursor
          @param: event -> the wx Mouseevent for that click