def showStats2(self, event=None): stats=WAVESTATS.keys() optstats=["None"]+stats d=self.askParam([{"Name":"X Axis", "Type":"List", "Value":stats}, {"Name":"Y Axis", "Type":"List", "Value":stats}, {"Name":"Color", "Type":"List", "Value":optstats}, {"Name":"Point Size", "Type":"List", "Value":optstats}, ]) if not d: return g=self.subPlot("%s vs %s" % (d[1], d[0])) x=self.getWaveformStats(d[0]) self.report("X axis is %s: %.4g to %.4g" % (d[0], x.min(), x.max())) y=self.getWaveformStats(d[1]) self.report("Y axis is %s: %.4g to %.4g" % (d[1], y.min(), y.max())) x=column_stack([x, y]) c=None w=None if d[2]!="None": c=self.getWaveformStats(d[2]) self.report("Color is %s: %.4g to %.4g" % (d[2], c.min(), c.max())) g.addCscale(c, 'hot') c=colorscale(c, 'hot') if d[3]!="None": w=self.getWaveformStats(d[3]) self.report("Point size is %s: %.4g to %.4g" % (d[3], w.min(), w.max())) w=w-w.min() w=w/w.max() w=4+15*w g.addPlot(x, style="points", colorlist=c, widthlist=w, width=6, name="SSStats") g.fullScale() g.DrawAll()
def subAltClick(self, event): x=event.GetX() y=event.GetY() dat=self.subplot.plots['SSStats']['data'] dat=self.subplot.graphCoords(dat) spike=argmin(eucd(dat, array([x,y]))) c=zeros(dat.shape[0]) c[spike]=1.0 self.selected=spike self.showSpike(self.selected) self.subplot.plots["SSStats"]['colorlist']=colorscale(c, 'hot', (-1,1.2)) self.subplot.DrawAll()
def local_update(self, what): if what=='selectspike': if self.showing=='resid': self.showCSResid(None) try: dat=self.subplot.plots['SSStats']['data'] c=zeros(dat.shape[0]) c[self.ss.current_spike]=1.0 self.subplot.plots["SSStats"]['colorlist']=colorscale(c, 'hot', (-1,1.2)) self.subplot.DrawAll() except: pass
def showStats2(self, event=None): check=self.cacheEvents() if not check: self.report("No waveform or event templates") return stats=WAVESTATS.keys() optstats=["None"]+stats d=self.askParam([{"Name":"X Axis", "Type":"List", "Value":stats}, {"Name":"Y Axis", "Type":"List", "Value":stats}, {"Name":"Color", "Type":"List", "Value":optstats}, {"Name":"Point Size", "Type":"List", "Value":optstats}, ]) if not d: return print d[0] x=self.getWaveformStats(d[0]) self.report("X axis is %s: %.4g to %.4g" % (d[0], x.min(), x.max())) y=self.getWaveformStats(d[1]) self.report("Y axis is %s: %.4g to %.4g" % (d[1], y.min(), y.max())) x=column_stack([x, y]) c=None w=None g=self.subPlot("%s vs %s" % (d[1], d[0])) if d[2]!="None": c=self.getWaveformStats(d[2]) self.report("Color is %s: %.4g to %.4g" % (d[2], c.min(), c.max())) g.addCscale(c, 'hot') c=colorscale(c, 'hot') if d[3]!="None": w=self.getWaveformStats(d[3]) self.report("Point size is %s: %.4g to %.4g" % (d[3], w.min(), w.max())) w=w-w.min() w=w/w.max() w=4+15*w n=g.addPlot(x, style="points", width=6, name="SSStats") if c: g.plots[n]['colorlist']=c if w!=None: g.plots[n]['widthlist']=w g.fullScale() g.DrawAll()
def showSelectedEvents(self, event=None): try: p=self.subplot.plots['SSStats'] if len(self.selected_events): c=zeros(p['data'].shape[0]) put(c, self.selected_events, 1) p['colorlist']=colorscale(c, 'hot', (-1,1.2)) else: p['colorlist']=None self.subplot.DrawAll() except: pass evts=self.ss.getTemp('spikes') if evts[1] and len(self.selected_events): for n in self.ss.rgraph.plots.keys(): if self.ss.rgraph.plots[n]['style']=='evts': del(self.ss.rgraph.plots[n]) evts=evts[1].getData() sel=take(evts, self.selected_events, 0) unsel=take(evts, setdiff1d(arange(evts.shape[0]), self.selected_events), 0) st=domain(self.ss.dv.data)[0] self.ss.rgraph.addPlot(sel,style="evts", start=0, color=(250, 0, 0)) self.ss.rgraph.addPlot(unsel,style="evts", start=0, color=(125, 125, 125)) self.ss.rgraph.DrawAll()