import numpy as np import matplotlib.pyplot as plt from tools.generation.config import DotheLoop, get_config def collect_scalar(filename): njobs = DotheLoop(-1) rdir='./data/' res=np.array([]) for job in range(njobs): res=np.append(res,np.loadtxt(rdir+str(job)+'/'+filename)) res=res.reshape(njobs,-1) return res def get_stats(res,col,logv): parser, iterables = get_config() seeds=iterables['seeds'] n_of_seeds=len(seeds) ps = iterables['ps'] n_of_ps=len(ps) stats=np.zeros((n_of_ps,3)) x=res[:,col] if logv==True: x=np.log(x) for i in range(n_of_ps): stats[i,0]=ps[i] stats[i,1]=np.nanmean(x[i*n_of_seeds:(i+1)*n_of_seeds]) stats[i,2]=np.nanvar(x[i*n_of_seeds:(i+1)*n_of_seeds]) if logv==True: stats[:,1]=np.exp(stats[:,1]) return stats def plot_keff(stats): ylabel=r'$K_{eff}$' xlabel=r'$p$' fsize=14 plt.figure(1) plt.semilogy(stats[:,0],stats[:,1]) plt.xlabel(xlabel,fontsize=fsize) plt.ylabel(ylabel,fontsize=fsize) plt.grid() plt.savefig('Keff_p.png') plt.close() plt.figure(2) plt.plot(stats[:,0],stats[:,2]) plt.xlabel(xlabel,fontsize=fsize) plt.ylabel(ylabel,fontsize=fsize) plt.grid() plt.savefig('vKeff_p.png') plt.close() return def searchError(filename): njobs = DotheLoop(-1) rdir='./data/' for job in range(njobs): nclus=np.loadtxt(rdir+str(job)+'/'+filename)[:,4] for i in range(1,nclus.shape[0]): if nclus[0]!=nclus[i]: print(job,nclus[0],nclus[i]) return filename='resTestCon.txt' searchError(filename) res=collect_scalar(filename) ''' stats = get_stats(res,0,True) plot_keff(stats) np.savetxt('Stats.txt',stats) '''