code: def on_plot_select(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
  
          index = None
          for i,(x,y) in enumerate(zip(xdata,ydata)):
              if 0 < sqrt((x-xpick_data)**2. + (y-ypick_data)**2.) < e:
                  index = i
                  break
          if index==None: print("Couldn't find point %.1f,%.1f"%(xpick_data,ypick_data))
  
          self.change_selected(index)
docs: Select data point if cursor is in range of a data point
          @param: event -> the wx Mouseevent for that click