'Select a subset from the collection.'

def on_select(self, verts):

    from matplotlib.path import Path
    if (len(verts) <= 3):
        return
    path = Path(verts)
    inds = np.nonzero([path.contains_point(xy) for xy in self.xys])[0]
    if (self.canvas._key == 'control'):
        sels = [np.where((self.ch_names == c))[0][0] for c in self.selection]
        inters = (set(inds) - set(sels))
        inds = list(inters.union((set(sels) - set(inds))))
    while (len(self.selection) > 0):
        self.selection.pop(0)
    self.selection.extend(self.ch_names[inds])
    self.fc[:, (-1)] = self.alpha_other
    self.fc[(inds, (-1))] = 1
    self.collection.set_facecolors(self.fc)
    self.canvas.draw_idle()
    self.canvas.callbacks.process('lasso_event')
