def setrasters(d, vsplit='cell', hsplit='condition', csplit='stim_type', sort=('stim_atten',), fig=1, save=None): vkeys = allv(d, vsplit) hkeys = allv(d, hsplit) ckeys = allv(d, csplit) rg = RasterGrid(len(vkeys), len(hkeys), fig) rg.clear() for i in range(len(vkeys)): for j in range(len(hkeys)): rg.titles[i][j] = "%s,%s" % (vkeys[i], hkeys[j]) for c, cv in enumerate(ckeys): grid = [] keys_c = find(d, **{csplit: cv}) for vk in vkeys: grid.append([]) keys_v = find(d, **{vsplit: vk, 'keys': keys_c}) for hk in hkeys: keys = find(d, **{hsplit: hk, 'keys': keys_v}) dat = fuse(d, keys, sort) grid[-1].append(dat) if keys_c: sdur = d[keys_c[0] + '.stim_dur'] sstrt = d[keys_c[0] + '.stim_delay'] or 0.0 else: sdur = None if sdur: rg.add(grid, c, {'alpha': .9, 'roi': [(sstrt, sstrt + sdur)]}) else: rg.add(grid, c) rg.draw() if save: plt.savefig(save)
def raster(sd): rgrid = [[sd[k] for k in sd if k.startswith('cond')]] r = RasterGrid(1, len(rgrid[0])) r.clear() r.add(rgrid) r.draw()