def dragdone(self, a, evt): axes = a.axes x, y = self._eval_xy() dxd, dyd = self._drag_delta if (evt.xdata is not None and evt.ydata is not None): i = 0 xdata = [] ydata = [] for x0 in nd_iter(x): xd, void = transform_point(axes.transData, x0, evt.ydata) x1, void = transform_point(axes.transData.inverted(), xd + dxd, void) xdata.append(x1) i = i + 1 for y0 in nd_iter(y): void, yd = transform_point(axes.transData, evt.xdata, y0) void, y1 = transform_point(axes.transData.inverted(), void, yd + dyd) ydata.append(y1) i = i + 1 else: xdata = x ydata = y action = UndoRedoFigobjMethod(self._artists[0], 'data', (np.array(xdata), np.array(ydata))) window = evt.guiEvent.GetEventObject().GetTopLevelParent() GlobalHistory().get_history(window).make_entry([action]) return 1
def drag(self, a, evt): if evt.inaxes is None: return 0 if evt.xdata is None: return axes = a.axes x, y = self._eval_xy() dxd = evt.x - self._drag_backup[2] dyd = evt.y - self._drag_backup[3] if (evt.guiEvent.ShiftDown()): if abs(dxd) > 2 * abs(dyd): dyd = 0 elif abs(dyd) > 2 * abs(dxd): dxd = 0 i = 0 for x0 in nd_iter(x): xd, void = transform_point(axes.transData, x0, evt.ydata) x1, void = transform_point(axes.transData.inverted(), xd + dxd, void) self._artists[i].set_xdata([x1, x1]) i = i + 1 for y0 in nd_iter(y): void, yd = transform_point(axes.transData, evt.xdata, y0) void, y1 = transform_point(axes.transData.inverted(), void, yd + dyd) self._artists[i].set_ydata([y1, y1]) i = i + 1 self._drag_delta = (dxd, dyd) return 1
def highlight_artist(self, val, artist=None): if artist is None: alist = self._artists else: alist = artist container = self.get_container() # container=self._parent._artists[0] if val == True: hl = [] x, y = self._eval_xy() for x1 in nd_iter(x): hl.append( container.axvline(x1, marker='s', color='k', linestyle='None', markeredgewidth=0.5, markerfacecolor='None')) for y1 in nd_iter(y): hl.append( container.axhline(y1, marker='s', color='k', linestyle='None', markeredgewidth=0.5, markerfacecolor='None')) for a in alist: a.figobj_hl += hl else: for a in self._artists: for hl in a.figobj_hl: if hl in container.lines: container.lines.remove(hl) a.figobj_hl = []
def dragdone(self, a, evt): axes = a.axes x, y = self._eval_xy() dxd, dyd = self._drag_delta if (evt.xdata is not None and evt.ydata is not None): i = 0 xdata = [] ydata = [] for x0 in nd_iter(x): xd, void= transform_point(axes.transData, x0, evt.ydata) x1, void= transform_point(axes.transData.inverted(), xd+dxd, void) xdata.append(x1) i = i+1 for y0 in nd_iter(y): void, yd= transform_point(axes.transData, evt.xdata, y0) void, y1= transform_point(axes.transData.inverted(), void, yd+dyd) ydata.append(y1) i = i+1 else: xdata = x ydata = y action = UndoRedoFigobjMethod(self._artists[0], 'data', (np.array(xdata), np.array(ydata))) window = evt.guiEvent.GetEventObject().GetTopLevelParent() GlobalHistory().get_history(window).make_entry([action]) return 1
def drag(self, a, evt): if evt.inaxes is None: return 0 if evt.xdata is None:return axes = a.axes x, y = self._eval_xy() dxd = evt.x - self._drag_backup[2] dyd = evt.y - self._drag_backup[3] if (evt.guiEvent.ShiftDown()): if abs(dxd) > 2*abs(dyd): dyd = 0 elif abs(dyd) > 2*abs(dxd): dxd = 0 i = 0 for x0 in nd_iter(x): xd, void= transform_point(axes.transData, x0, evt.ydata) x1, void= transform_point(axes.transData.inverted(), xd+dxd, void) self._artists[i].set_xdata([x1, x1]) i = i+1 for y0 in nd_iter(y): void, yd= transform_point(axes.transData, evt.xdata, y0) void, y1= transform_point(axes.transData.inverted(), void, yd+dyd) self._artists[i].set_ydata([y1, y1]) i = i+1 self._drag_delta = (dxd, dyd) return 1
def highlight_artist(self, val, artist=None): if artist is None: alist=self._artists else: alist=artist container=self.get_container() # container=self._parent._artists[0] if val == True: hl = [] x, y = self._eval_xy() for x1 in nd_iter(x): hl.append(container.axvline(x1, marker='s', color='k', linestyle='None', markeredgewidth = 0.5, markerfacecolor='None')) for y1 in nd_iter(y): hl.append(container.axhline(y1, marker='s', color='k', linestyle='None', markeredgewidth = 0.5, markerfacecolor='None')) for a in alist: a.figobj_hl += hl else: for a in self._artists: for hl in a.figobj_hl: if hl in container.lines: container.lines.remove(hl) a.figobj_hl=[]