def __init__( self, ax, onselect, button=None, minspanx=None, minspany=None, useblit=True, lineprops=None, rectprops=dict(facecolor="red", edgecolor="black", alpha=0.5, fill=True), proxy=5, ): RectangleSelector.__init__( self, ax=ax, onselect=onselect, drawtype="box", spancoords="data", minspanx=minspanx, minspany=minspany, useblit=useblit, lineprops=lineprops, rectprops=rectprops, button=button, ) self.fixedSize = None self.prevEvents = None self.proxy = max( self.ax.transData.transform_point((proxy / 100, proxy / 100)) - self.ax.transData.transform_point((0, 0)) )
def __init__(self, ax, on_move=None, on_release=None, on_enter=None, maxdist=10, rect_props=None): CanvasToolBase.__init__(self, ax, on_move=on_move, on_enter=on_enter, on_release=on_release) props = dict(edgecolor=None, facecolor="r", alpha=0.15) props.update(rect_props if rect_props is not None else {}) if props["edgecolor"] is None: props["edgecolor"] = props["facecolor"] RectangleSelector.__init__(self, ax, lambda *args: None, rectprops=props, useblit=self.useblit) # Alias rectangle attribute, which is initialized in RectangleSelector. self._rect = self.to_draw self._rect.set_animated(True) self.maxdist = maxdist self.active_handle = None self._extents_on_press = None if on_enter is None: def on_enter(extents): print("(xmin=%.3g, xmax=%.3g, ymin=%.3g, ymax=%.3g)" % extents) self.callback_on_enter = on_enter props = dict(mec=props["edgecolor"]) self._corner_order = ["NW", "NE", "SE", "SW"] xc, yc = self.corners self._corner_handles = ToolHandles(ax, xc, yc, marker_props=props) self._edge_order = ["W", "N", "E", "S"] xe, ye = self.edge_centers self._edge_handles = ToolHandles(ax, xe, ye, marker="s", marker_props=props) self._artists = [self._rect, self._corner_handles.artist, self._edge_handles.artist]
def __init__(self, ax, x, y, rectprops=None, aspect=None): RectangleSelector.__init__(self, ax, self.onselect, rectprops=rectprops, useblit=False, interactive=True) self.state_modifier_keys = dict(move=' ', accept='enter', clear='c', disconnect='escape', square='shift', center='control') self.data = list(zip(x, y)) self.sel = [] self._onselect = None if aspect is not None: if isinstance(aspect, (list, tuple, np.ndarray)): self.ratio = aspect[1] / aspect[0] elif type(aspect) == float: self.ratio = aspect elif type(aspect) == int: self.ratio = float(aspect)
def __init__(self, lines, drawtype='box', minspanx=None, minspany=None, useblit=False, lineprops=None, rectprops=None, spancoords='data', button=None, maxdist=10, marker_props=None, interactive=False, state_modifier_keys=None): self.verbose = True self.lines = flatten(lines) ax = self.lines[0].axes RectangleSelector.__init__( self, ax, self.select_lines, drawtype, minspanx, minspany, useblit, lineprops, rectprops, spancoords, button, maxdist, marker_props, interactive, state_modifier_keys) hprops = dict(linewidth=10, alpha=0.5, linestyle='-') # marker='s' self.selection = [ np.zeros(l.get_xdata().shape, bool) for l in self.lines ] #Create Line2D for highlighting selected sections self.highlighted = [] for line in self.lines: hline, = ax.plot([], [], color=line.get_color(), **hprops) self.highlighted.append( hline ) self.artists.append( hline ) #enable blitting for the highlighted segments
def __init__(self, viewer, on_move=None, on_release=None, on_enter=None, maxdist=10, rect_props=None): CanvasToolBase.__init__(self, viewer, on_move=on_move, on_enter=on_enter, on_release=on_release) props = dict(edgecolor=None, facecolor='r', alpha=0.15) props.update(rect_props if rect_props is not None else {}) if props['edgecolor'] is None: props['edgecolor'] = props['facecolor'] RectangleSelector.__init__(self, self.ax, lambda *args: None, rectprops=props) self.disconnect_events() # events are handled by the viewer # Alias rectangle attribute, which is initialized in RectangleSelector. self._rect = self.to_draw self._rect.set_animated(True) self.maxdist = maxdist self.active_handle = None self._extents_on_press = None if on_enter is None: def on_enter(extents): print("(xmin=%.3g, xmax=%.3g, ymin=%.3g, ymax=%.3g)" % extents) self.callback_on_enter = on_enter props = dict(mec=props['edgecolor']) self._corner_order = ['NW', 'NE', 'SE', 'SW'] xc, yc = self.corners self._corner_handles = ToolHandles(self.ax, xc, yc, marker_props=props) self._edge_order = ['W', 'N', 'E', 'S'] xe, ye = self.edge_centers self._edge_handles = ToolHandles(self.ax, xe, ye, marker='s', marker_props=props) self.artists = [ self._rect, self._corner_handles.artist, self._edge_handles.artist ] viewer.add_tool(self)
def __init__(self, viewer, on_move=None, on_release=None, on_enter=None, maxdist=10, rect_props=None): self._rect = None props = dict(edgecolor=None, facecolor='r', alpha=0.15) props.update(rect_props if rect_props is not None else {}) if props['edgecolor'] is None: props['edgecolor'] = props['facecolor'] RectangleSelector.__init__(self, viewer.ax, lambda *args: None, rectprops=props) CanvasToolBase.__init__(self, viewer, on_move=on_move, on_enter=on_enter, on_release=on_release) # Events are handled by the viewer try: self.disconnect_events() except AttributeError: # disconnect the events manually (hack for older mpl versions) [self.canvas.mpl_disconnect(i) for i in range(10)] # Alias rectangle attribute, which is initialized in RectangleSelector. self._rect = self.to_draw self._rect.set_animated(True) self.maxdist = maxdist self.active_handle = None self._extents_on_press = None if on_enter is None: def on_enter(extents): print("(xmin=%.3g, xmax=%.3g, ymin=%.3g, ymax=%.3g)" % extents) self.callback_on_enter = on_enter props = dict(mec=props['edgecolor']) self._corner_order = ['NW', 'NE', 'SE', 'SW'] xc, yc = self.corners self._corner_handles = ToolHandles(self.ax, xc, yc, marker_props=props) self._edge_order = ['W', 'N', 'E', 'S'] xe, ye = self.edge_centers self._edge_handles = ToolHandles(self.ax, xe, ye, marker='s', marker_props=props) self.artists = [self._rect, self._corner_handles.artist, self._edge_handles.artist] viewer.add_tool(self)
def __init__(self, ax): RectangleSelector.__init__(self, ax, self.onselect)
def __init__(self, event): RectangleSelector.__init__(self, Plot.plot.ax, onselect=self.onselect, useblit=True)