def plotXcorr(qdata,save=False,fname='hmmSortingUnits.pdf'): unitTimePoints = qdata['unitTimePoints'] samplingRate = qdata.get('samplingRate',30000.0) units = unitTimePoints.keys() nunits = len(units) xsize = max(10,nunits*2) fig = plt.figure(figsize=(xsize,(6.0/8)*xsize) ) fig.subplots_adjust(left=0.03,right=0.97,bottom=0.03,top=0.97) i = 1 if not 'XCorr' in qdata: if isinstance(qdata,dict): qdata['XCorr'] = {} else: qdata.create_group('XCorr') for k1 in xrange(len(units)-1) : if not units[k1] in qdata['XCorr']: qdata['XCorr'].create_group(units[k1]) for k2 in xrange(k1+1,len(units)): if not units[k2] in qdata['XCorr'][units[k1]]: T1 = unitTimePoints[units[k1]][:]/(samplingRate/1000) T2 = unitTimePoints[units[k2]][:]/(samplingRate/1000) #compute differences less than 50 ms C = pdist_threshold2(T1,T2,50) qdata['XCorr'][units[k1]].create_dataset(units[k2],data=C,compression=2,fletcher32=True,shuffle=True) else: C = qdata['XCorr'][units[k1]][units[k2]][:] n,b = np.histogram(C,np.arange(-50,50),normed=True) ax = Subplot(fig,nunits-1,nunits,k1*nunits+k2) fig.add_axes(ax) formatAxis(ax) ax.plot(b[:-1],n,'k') ax.fill_betweenx([0,n.max()],-1.0,1.0,color='r',alpha=0.3) if not (k1 == len(units)-2 and k2 == len(units)-1): ax.set_xticklabels('') ax.set_yticklabels('') if save: fig.savefig(os.path.expanduser('~/Documents/research/figures/SpikeSorting/hmm/%s' %( fname,)),bbox='tight') else: plt.draw()