def send_message(self, event): """Call `matplotlib.backend_managers.ToolManager.message_event`""" if self.toolmanager.messagelock.locked(): return message = ' ' if event.inaxes and event.inaxes.get_navigate(): try: s = event.inaxes.format_coord(event.xdata, event.ydata) except (ValueError, OverflowError): pass else: artists = [a for a in event.inaxes.mouseover_set if a.contains(event) and a.get_visible()] if artists: a = cbook._topmost_artist(artists) if a is not event.inaxes.patch: data = a.get_cursor_data(event) if data is not None: data_str = a.format_cursor_data(data) if data_str is not None: s = s + ' ' + data_str message = s self.toolmanager.message_event(message, self)
def mouse_move(self, event): self._set_cursor(event) if event.inaxes and event.inaxes.get_navigate(): try: s = 'x:{0:d} y:{1:d}'.format( int(event.xdata), int(event.ydata) ) except (ValueError, OverflowError): pass else: artists = [a for a in event.inaxes._mouseover_set if a.contains(event) and a.get_visible()] if artists: a = cbook._topmost_artist(artists) if a is not event.inaxes.patch: data = a.get_cursor_data(event) if data is not None: data_str = a.format_cursor_data(data) if data_str is not None: s = s + ' ' + data_str if len(self.mode): self.set_message('%s, %s' % (self.mode, s)) else: self.set_message(s) else: self.set_message(self.mode)
def mouse_move(self, event): """ overwrite mouse_move to print lon/lat instead of x/y coordinates. """ if self.mode == _Mode.MOVE_WP: self.canvas.waypoints_interactor.motion_notify_callback(event) if not self.sideview: self._update_cursor(event) if event.inaxes and event.inaxes.get_navigate(): try: lat, lon = self.canvas.waypoints_interactor.get_lat_lon( event) except (ValueError, OverflowError) as ex: logging.error("%s", ex) else: s = f"lat={lat:6.2f}, lon={lon:7.2f}" artists = [ a for a in event.inaxes._mouseover_set if a.contains(event)[0] and a.get_visible() ] if artists: a = cbook._topmost_artist(artists) if a is not event.inaxes.patch: data = a.get_cursor_data(event) if data is not None: data_str = a.format_cursor_data(data) if data_str is not None: s += " " + data_str if self.mode: s = self.mode + ", " + s self.set_message(s) else: self.set_message(self.mode) else: if not event.ydata or not event.xdata: self.set_message(self.mode) else: (lat, lon), _ = self.canvas.waypoints_interactor.get_lat_lon(event) y_value = convert_pressure_to_vertical_axis_measure( self.canvas.settings_dict["vertical_axis"], event.ydata) self.set_message( f"{self.mode} lat={lat:6.2f} lon={lon:7.2f} altitude={y_value:.2f}" )
def mouse_move(self, event): self._set_cursor(event) if event.inaxes and event.inaxes.get_navigate(): try: xdata = event.xdata ydata = event.ydata x = int(xdata) y = int(ydata) if self._image_dpi: xcm = points_to_centimeters(self._image_dpi[0], float(xdata)) ycm = points_to_centimeters(self._image_dpi[1], float(ydata)) s = 'x: {0:.2f} cm [{1:d} pxs], y: {2:.2f} cm [{3:d} pxs],\ value: '.format(xcm, x, ycm, y) else: s = 'x: {0:d}, y: {1:d}, value: '.format(x, y) except (ValueError, OverflowError): pass else: artists = [ a for a in event.inaxes._mouseover_set if a.contains(event) and a.get_visible() ] if artists: a = cbook._topmost_artist(artists) if a is not event.inaxes.patch: data = a.get_cursor_data(event) if data is not None: data_str = a.format_cursor_data(data) if data_str is not None: s = s + ' ' + data_str if len(self.mode): self.set_message('%s, %s' % (self.mode, s)) else: self.set_message(s) else: self.set_message(self.mode)