# -*- coding: utf-8 -*- import numpy as np import sys import matplotlib.pyplot as plt from pylab import setp from matplotlib.pyplot import rcParams import csv import pandas as pd rcParams['mathtext.default'] = 'regular' def read_file(finame): fi = open(finame, 'r') rdr = csv.reader(fi, delimiter=',', skipinitialspace=True) table = [] for row in rdr: # print(row) energy = float(row[0]) veff = float(row[1]) veff_err = float(row[2]) veff1 = float(row[3]) veff2 = float(row[4]) veff3 = float(row[5]) row = {'energy':energy, 'veff':veff, 'veff_err':veff_err, 'veff1':veff1, 'veff2':veff2, 'veff3':veff3} table.append(row) df=pd.DataFrame(table) df_ordered=df.sort_values('energy',ascending=True) # print(df_ordered) return df_ordered def beautify_veff(this_ax): sizer=20 xlow = 1.e16 #the lower x limit xup = 2.e20 #the uppper x limit ylow =1e-3 #the lower x limit yup = 6.e1 #the uppper x limit this_ax.set_xlabel('Energy [eV]',size=sizer) #give it a title this_ax.set_ylabel('[V$\Omega]_{eff}$ [km$^3$sr]',size=sizer) this_ax.set_yscale('log') this_ax.set_xscale('log') this_ax.tick_params(labelsize=sizer) this_ax.set_xlim([xlow,xup]) #set the x limits of the plot this_ax.set_ylim([ylow,yup]) #set the y limits of the plot this_ax.grid() this_legend = this_ax.legend(loc='upper left') setp(this_legend.get_texts(), fontsize=17) setp(this_legend.get_title(), fontsize=17) def main(): """ arasim_energies = np.array([3.16e+16, 1e+17, 3.16e+17, 1e+18, 3.16e+18, 1e+19, 3.16e+19, 1e+20]) arasim_energies2 = np.array([3.16e+16, 1e+17, 3.16e+17, 1e+18, 1e+19, 3.16e+19, 1e+20]) #arasim_desA_veff = np.array([0.080894,0.290695,0.943223,2.388708,4.070498,6.824112,10.506490,13.969418]) arasim_desA_veff_s = np.array([0.067384,0.289591,0.996509,2.464464,4.945600,8.735506,13.357300,18.751915]) # arasim_desA_veff_ice = np.array([0.066291,0.303620,0.927647,2.427554,4.962093,8.465895,13.425852,18.706528]) arasim_desA_error = np.array([0.008367,0.017401,0.032222,0.084223,0.119240,0.221266,0.272460,0.320456]) # arasim_desA_error_ice = np.array([0.008345,0.017748,0.031295,0.083747,0.119370,0.217717,0.273075,0.319872]) # arasim_desB_veff = np.array([0.124111,0.417102,1.310555,3.648494,4.070E+0,11.675189,18.393961,13.688909]) arasim_desB_veff_s = np.array([0.064937,0.355747,1.289947,3.821705,8.002805,15.352981,25.391282,18.009545]) # arasim_desB_veff_ice = np.array([0.080070,0.340927,1.369081,3.938550,8.211407,15.190858,25.066541,18.021033]) arasim_desB_error = np.array([0.008268,0.019317,0.036926,0.105445,0.152488,0.296617,0.377997,0.314314]) # arasim_desB_error_ice = np.array([0.009220,0.019144,0.037966,0.107189,0.154430,0.293728,0.375827,0.314244]) arasim_desA_veff1_sm = np.array([0.054,0.231,0.868,2.239,4.586,8.339,12.910,18.301]) arasim_desA_veff2_sm = np.array([0.009,0.036,0.098,0.323,0.705,1.167,2.169,3.130]) arasim_desA_veff3_sm = np.array([0.011,0.074,0.193,0.664,1.208,2.347,3.689,4.814]) arasim_desA_veff1 = np.array([0.053,0.282,1.108,3.462,7.486,14.613,24.682,17.557]) arasim_desA_veff2 = np.array([0.006,0.040,0.121,0.322,0.636,1.308,1.961,2.708]) arasim_desA_veff3 = np.array([0.006,0.065,0.188,0.638,1.187,2.270,3.301,4.322]) """ veff_A=read_file("Veff_desA.txt") veff_B=read_file("Veff_desB.txt") print("desA is \n", veff_A) print("desB is \n", veff_B) dfA = veff_A[['veff','veff_err']] dfB = veff_B[['veff','veff_err']] dfA.to_csv('veffA.csv', sep='\t',index=False) dfB.to_csv('veffB.csv', sep='\t',index=False) fig = plt.figure(figsize=(11,8.5)) ax1 = fig.add_subplot(1,1,1) ax1.plot(veff_A['energy'], veff_A['veff'],'bs-',label='Strawman',markersize=8,linewidth=2) ax1.plot(veff_B['energy'], veff_B['veff'],'gs-',label='Punch @100 m',markersize=8,linewidth=2) ax1.fill_between(veff_A['energy'], veff_A['veff']-veff_A['veff_err'], veff_A['veff']+veff_A['veff_err'], alpha=0.2, color='red') ax1.fill_between(veff_B['energy'], veff_B['veff']-veff_B['veff_err'], veff_B['veff']+veff_B['veff_err'], alpha=0.2, color='red') beautify_veff(ax1) ax1.set_title("Punch vs Strawman, noise + signal",fontsize=20) fig.savefig("desAB.png",edgecolor='none',bbox_inches="tight") #save the figure fig2 = plt.figure(figsize=(11,8.5)) ax2 = fig2.add_subplot(1,1,1) #Triggers plot ax2.plot(veff_B['energy'], veff_B['veff1'],'g^-',label='Phased array (Punch)',markersize=8,linewidth=2) ax2.plot(veff_A['energy'], veff_A['veff1'],'gs-',label='Phased array (Strawman)',markersize=8,linewidth=2) ax2.plot(veff_B['energy'], veff_B['veff2'],'b^-',label='LPDAs (Punch)',markersize=8,linewidth=2) ax2.plot(veff_A['energy'], veff_A['veff2'],'bs-',label='LPDAs (Strawman)',markersize=8,linewidth=2) ax2.plot(veff_B['energy'], veff_B['veff3'],'y^-',label='Bicones (Punch)',markersize=8,linewidth=2) ax2.plot(veff_A['energy'], veff_A['veff3'],'ys-',label='Bicones (Strawman)',markersize=8,linewidth=2) ax2.set_title("Triggers contribution, noise + signal",fontsize=20) beautify_veff(ax2) fig2.savefig("desAB_triggers.png",edgecolor='none',bbox_inches="tight") #save the figure main()