def draw_mvbins(): fig, ax = plt.subplots(1, 1, figsize=(8, 7)) for mi, modelname in enumerate(models): foutname = "/scratch/shuiyao/scidata/gadget3io/" + modelname + "/" + modelname + "_" + snapstr + ".starhost" print "Building MBins for ", foutname mvbins = build_msub_bins(foutname) mvbins.draw(ax, lstyle=lstyles[mi]) from pltastro import legend lgd1 = legend.legend(ax) lgd1.loc = "upper left" lgd1.addLine((models[0], "black", lstyles[0], 1)) lgd1.addLine((models[1], "black", lstyles[1], 1)) lgd1.draw() # tab = genfromtxt(foutname, names=True) # tab = tab[tab['Flag'] == 1.] # plt.plot(tab['Msub'][::step], tab['Tmax'][::step], ".", color=clrs[mi], markersize=6, alpha=0.2) # plt.plot(tab['Msub'][::step], tab['Mstar'][::step], ".", color=clrs[mi], markersize=6, alpha=0.2) ax.set_title("z = " + str(REDSHIFT)[:3]) ax.set_xlabel(r"$\log(M_\mathrm{vir}/M_\odot)$") ax.set_ylabel("Mass Fraction") ax.set_xlim(10.5, 14.0) ax.set_ylim(0.0, 1.1) plt.savefig("/scratch/shuiyao/figures/tmp.pdf") plt.show() plt.close()
def draw_frame(): from matplotlib.lines import Line2D from pltastro import legend lgd1 = legend.legend(axs[0]) lgd1.loc = "lower left" # lgd1.addLine((lgds[2], "black", ":", 1)) for i in range(len(lgds)): lgd1.addLine((lgds[i], "black", lstyles[i], 1)) lgd1.draw() lgd2 = legend.legend(axs[0]) lgd2.loc = "lower right" lgd2.addLine(("cold", "blue", "-", 1)) lgd2.addLine(("hot", "red", "-", 1)) # lgd2.addLine(("cold wind", "cyan", "-", 1)) # lgd2.addLine(("hot wind", "magenta", "-", 1)) # lgd2.addLine(("hot wind", "magenta", "-", 1)) if(SHOW_ALLWINDS): lgd2.addLine(("all wind", color_allw, "-", 1)) lgd2.draw() FBEHROOZI = DIRS['SCI']+"REFERENCES/behroozi13/smmr/" if(REDSHIFT == 2.0): snapnum, zstr_behroozi = "058", "2.00" if(REDSHIFT == 0.0): snapnum, zstr_behroozi = "108", "0.10" if(REDSHIFT == 1.0): snapnum, zstr_behroozi = "078", "1.00" if(REDSHIFT == 0.25): snapnum, zstr_behroozi = "098", "0.10" mh, ms, err1, err2 = ioformat.rcol(FBEHROOZI+"c_smmr_z"+zstr_behroozi+"_red_all_smf_m1p1s1_bolshoi_fullcosmos_ms.dat", [0,1,2,3], linestart=1) ms = array(ms) - log10(0.156) axs[0].plot(mh, ms, "o", color="green", markersize=6) axs[0].errorbar(mh, ms, yerr=[err1, err2], color="green") axs[0].set_title("z = "+str(REDSHIFT)[:3], fontsize=16) axs[0].plot([10.9, 10.9], [-4.0, -0.5], "k--") axs[0].plot([10.0, 10.0], [-4.0, -0.5], "k-") axs[1].plot([10.9, 10.9], [0.0, 1.1], "k--") axs[1].plot([10.0, 10.0], [0.0, 1.1], "k-") plt.savefig(DIRS['FIGURE']+"tmp.pdf") plt.show()
def draw(): fig, ax = plt.subplots(1, 1, figsize=(8, 6)) modelstr2 = "x300v1700lc" foutnamex = "pdfs/" + modelstr + "_i9_pdf.dat" # foutnamey = "pdfs/"+modelstr+"_i9_y_pdf.dat" foutnamey = "pdfs/" + modelstr2 + "_i9_pdf.dat" # Ncorr = 0.225 / 1.75 # Ncorr = 0.16 / 1.4 # Ncorr = 1.75 / 0.45 Ncorr = 4.00 / 2.00 # Ncorr = 1.0 tabx = genfromtxt(foutnamex, names=True) taby = genfromtxt(foutnamey, names=True) edges = tabx['PlogN'] for i in range(9): ion = ions[i] ax.plot(tabx[ion], edges, "-", color=clrs[i]) ax.plot(taby[ion] + log10(Ncorr), edges, "--", color=clrs[i]) ax.set_xlim(10., 20.) ax.set_ylim(0., 1.) ax.set_xlabel(r"$\log(N_{ion})$") ax.set_ylabel(r"P") ax.set_title(modelstr) # if(PROJ == "perpendicular"): # ax.set_title("x300v1700-lc, Perpendicular") # else: # ax.set_title("x300v1700-lc, Parallel") from pltastro import legend lgd = legend.legend(ax) for i in range(9): lgd.addLine((lgds[i], clrs[i], "-", 1)) lgd.loc = "lower left" lgd.draw() lgd2 = legend.legend(ax) lgd2.addLine((modelstr, "black", "-", 1)) lgd2.addLine((modelstr2, "black", "--", 1)) lgd2.loc = "upper right" lgd2.draw() plt.savefig("/scratch/shuiyao/figures/tmp.pdf") plt.show()
def scatterplot_vinit_Tfinal(): from pltastro import frame, draw, legend from numpy import histogram frm = frame.multi(2, 1) pars = frm.params pars.left = 0.2 pars.figsize = (6, 8) pnls = frm.panels pars.height_ratios = [4, 1] pnls.ylabels = ["Vinit [km/s]", "frac"] pnls.set_xlabels("log(T_final)") pnls.set_xlims(3.0, 7.0) pnls.ylims[0] = (0.0, 1500.) pnls.ylims[1] = (0.0, 0.3) fig, axs = draw(frm) vi, Tf = [], [] for p in pg3: vi.append(p.track['dv'][0]) Tf.append(log10(p.track['T'][-1])) # Tf.append(p.track['T'][-1]) axs[0].plot(Tf, vi, "b.", alpha=0.3, markersize=4) hist, edges = histogram(Tf, bins=linspace(3, 7, 30)) mid = 0.5 * (edges[1:] + edges[:-1]) norm = sum(hist) hist = array(hist) / (float)(norm) axs[1].plot(mid, hist, "b.-") vi, Tf = [], [] for p in pparts: vi.append(p.track['dv'][0]) Tf.append(p.track['T'][-1]) axs[0].plot(Tf, vi, "r.", alpha=0.3, markersize=4) hist, edges = histogram(Tf, bins=linspace(3, 7, 30)) mid = 0.5 * (edges[1:] + edges[:-1]) norm = sum(hist) hist = array(hist) / (float)(norm) axs[1].plot(mid, hist, "r.-") lgd = legend.legend(axs[0]) lgd.addLine(("Gadget3", "blue", "-", 1)) lgd.addLine(("GIZMO", "red", "-", 1)) lgd.loc = "upper left" lgd.fontsize = 12 lgd.draw() plt.savefig("/scratch/shuiyao/figures/tmp.pdf") plt.show()
else: mbins_hotw[aidx] += s['WindMass'] mbins_totw = mbins_coldw + mbins_hotw mbins_total = sum(mbins_totw) if(CUMULATIVE_DISTRIBUTION): mbins_coldw = cumsum(mbins_coldw) mbins_hotw = cumsum(mbins_hotw) mbins_totw = cumsum(mbins_totw) axs[mi].plot(tcen, mbins_coldw/mbins_total, linestyle=lstyles[modeli], color="cyan") axs[mi].plot(tcen, mbins_hotw/mbins_total, linestyle=lstyles[modeli], color="magenta") axs[mi].plot(tcen, mbins_totw/mbins_total, linestyle=lstyles[modeli], color="orange") axs[mi].text(0.05, 0.85, captions[mi], color="black", transform=axs[mi].transAxes) axs[0].set_title("Wind Time, z="+str(REDSHIFT)[:4]) from pltastro import legend lgd1 = legend.legend(axs[0]) lgd1.loc = "lower right" lgd1.addLine((lgds[0], "black", lstyles[0], 1)) lgd1.addLine((lgds[1], "black", lstyles[1], 1)) lgd1.draw() lgd2 = legend.legend(axs[2]) lgd2.loc = "lower right" lgd2.addLine(("cold wind", "cyan", "-", 1)) lgd2.addLine(("hot wind", "magenta", "-", 1)) lgd2.addLine(("total wind", "orange", "-", 1)) lgd2.draw() plt.savefig("/home/shuiyao_umass_edu/figures/tmp.pdf") plt.show() print ("Done.")
hidx = (int)(s['HID'] - 1) aidx = find_siggal_bin(s['WindSig']) mbins_siggal[aidx] += s['WindMass'] mbins_siggal *= 1. / (1.989e33 * LBOX_MPC * 1.e9) df = pd.DataFrame({'sigcen': sigcen, 'mass': mbins_siggal}) print("Writing {}".format(outname)) df.to_csv(outname) axs[1].plot(df.sigcen, df.mass, linestyle=lstyles[modeli], color="black") axs[1].set_ylabel(r"$\dot{M}_{acc} [M_\odot (cMpc)^{-1} yr^{-1}]$") axs[1].set_ylim(0.0, 2.5) axs[1].set_yticks([0.0, 0.5, 1.0, 1.5, 2.0]) from pltastro import legend lgd1 = legend.legend(axs[0]) lgd1.loc = "upper right" lgd1.size = 8 lgd1.addLine(("z=2", "blue", "-", 1)) lgd1.addLine(("z=0", "red", "-", 1)) lgd1.draw() lgd1 = legend.legend(axs[1]) lgd1.loc = "upper right" lgd1.size = 8 lgd1.addLine((lgds[0], "black", lstyles[0], 1)) lgd1.addLine((lgds[1], "black", lstyles[1], 1)) lgd1.draw() plt.savefig(DIRS['FIGURE'] + "tmp.pdf") plt.show()
# axs[2*mi+1].plot(redges, log10(mzism/mism)-ZSOLAR, color="brown", linestyle=lstyles[modeli]) # axs[2*mi+1].plot(redges, ZWIND-ZSOLAR, color="green", linestyle=lstyles[modeli]) axs[2*mi+1].set_ylim(-1.5, 0.5) axs[2*mi+1].set_yticks([-1.5, -1.0, -0.5, 0.0]) # Text axs[2*mi+1].text(0.05, 0.85, captions[mi], transform=axs[2*mi+1].transAxes, fontsize=12) axs[0].set_title("Mass Profiles, z="+str(REDSHIFT)[:3]) # axs[1].set_title("Wind Profiles, z="+str(REDSHIFT)[:3]) axs[1].set_title("Metal Profiles, z="+str(REDSHIFT)[:3]) from pltastro import legend lgd1 = legend.legend(axs[0]) lgd1.loc = "upper right" for i in range(len(lgds)): lgd1.addLine((lgds[i], "black", lstyles[i], 1)) lgd1.draw() lgd2 = legend.legend(axs[4]) lgd2.loc = "upper right" lgd2.addLine(("cold", "blue", "-", 1)) lgd2.addLine(("hot", "red", "-", 1)) lgd2.addLine(("ISM", "brown", "-", 1)) lgd2.draw() # lgd3 = legend.legend(axs[5]) # lgd3.loc = "upper right" # lgd3.addLine(("all wind", "orange", "-", 1)) # lgd3.addLine(("PhEW", "green", "-", 1)) # lgd3.addLine(("cold wind", "cyan", "-", 1))
flag_0 = flag_0 / Nnorm flag_3 = flag_3 / Nnorm flag_4 = flag_4 / Nnorm ax.plot(mcen, flag_0, color=clrs[0], linestyle=lstyles[mi]) ax.plot(mcen, flag_3, color=clrs[1], linestyle=lstyles[mi]) ax.plot(mcen, flag_4, color=clrs[2], linestyle=lstyles[mi]) ax.plot(mcen, 1.0 - (flag_0 + flag_3 + flag_4), color=clrs[3], linestyle=lstyles[mi]) ax.set_xlabel(r"$\log(M_\mathrm{vir}/M_\odot)$") ax.set_ylabel("Fraction (Mass)") ax.set_xlim(MMIN, MMAX) ax.set_ylim(0.0, 1.0) from pltastro import legend lgd = legend.legend(ax) lgd.fontsize = 12 lgd.addLine(("Recouple", clrs[0], "-", 1)) lgd.addLine(("Time out", clrs[1], "-", 1)) lgd.addLine(("Destroyed", clrs[2], "-", 1)) lgd.addLine(("Stay", clrs[3], "-", 1)) lgd.addLine( (r"$\mathcal{M}_\mathrm{re}=1.0, f_\mathrm{re}=0.1$", "black", "--", 1)) lgd.addLine((r"$NoRec, f_\mathrm{re}=0.1$", "black", "-", 1)) lgd.loc = "upper left" lgd.draw() # lgd2 = legend.legend(ax) # lgd2.fontsize = 12 # # lgd2.addLine((r"$\mathcal{M}_\mathrm{re}=2.0, f_\mathrm{re}=0.05$", "black", ":", 1)) # lgd2.addLine((r"$\mathcal{M}_\mathrm{re}=1.0, f_\mathrm{re}=0.1$", "black", "--", 1)) # lgd2.addLine((r"$NoRec, f_\mathrm{re}=0.1$", "black", "-", 1))
def draw(): fig, ax = plt.subplots(1, 1, figsize=(8, 6)) # models = ['T0.3_v1700_chi300_cond_0-01',\ # 'T0.3_v1700_chi300_cond_0-1',\ # 'x300v1700c',\ # 'T0.3_v1700_chi300_cond_10',\ # 'T0.3_v1700_chi300_cond_100'] # lgds_uv = ['x0.01', 'x0.1', 'x1', 'x10', 'x100'] # models = ['T0.3_v1700_chi300_cond_10',\ # 'T0.3_v1700_chi300_cond_100',\ # 'T0.3_v1700_chi300_cond_1e5',\ # 'T0.3_v1700_chi300_cond_1e6',\ # 'T0.3_v1700_chi300_cond_1e5T2'] # # 'T0.3_v1700_chi300_cond_1e7'] # lgds_uv = ['x10', 'x100', 'x1e5', 'x1e6', 'x1e7'] # lstyles = ["dotted", "dashed", (0,(5,1)), (0,(3,1,1,1)), "-"] # lw = [1,1,2,1,1] models = [\ 'T0.3_v1700_chi300_cond_1e6',\ 'T0.3_v1700_chi300_cond_1e6T2'] # 'T0.3_v1700_chi300_cond_1e7'] lgds_uv = ['x1e6; Tfloor=1e4', 'x1e6; Tfloor=2e4'] lstyles = [":", "-"] lw = [2, 2] # lstyles = [":", "--", "-", "--", ":"] foutnames = [] for model in models: foutnames.append("pdfs/" + model + "_i9_y_pdf.dat") # Ncorr = 0.16 / 1.4 Ncorr = 1.0 ilist = range(9) # ilist = [0,3,5,7] for fi, foutname in enumerate(foutnames): print(foutname) tab = genfromtxt(foutname, names=True) edges = tab['PlogN'] for i in ilist: ion = ions[i] ax.plot(tab[ion], edges, linestyle=lstyles[fi], color=clrs[i], linewidth=lw[fi]) # ax.plot(taby[ion] + log10(Ncorr), edges, "--", color=clrs[i]) ax.set_xlim(8., 18.) ax.set_ylim(0., 1.) ax.set_xlabel(r"$\log(N_{ion})$") ax.set_ylabel(r"P") ax.set_title("x300v1700") # if(PROJ == "perpendicular"): # ax.set_title("x300v1700-lc, Perpendicular") # else: # ax.set_title("x300v1700-lc, Parallel") from pltastro import legend lgd = legend.legend(ax) for i in ilist: lgd.addLine((lgds[i], clrs[i], "-", 1)) lgd.loc = "lower left" lgd.draw() lgd2 = legend.legend(ax) for i in range(2): lgd2.addLine((lgds_uv[i], "black", lstyles[i], lw[i])) lgd2.loc = "upper right" lgd2.draw() plt.savefig("/home/shuiyao_umass_edu/figures/tmp.pdf") plt.show()
transform=axs[0].transAxes, va='center') # axs[0].plot(0.80, 0.60, color="blue", marker=symlst[1], markersize=12, transform=axs[0].transAxes) # axs[0].text(0.83, 0.60, r'$\hat{q}=0.95$', color='blue', fontsize=12, transform=axs[0].transAxes, va='center') # xoff = 0.05 # for i in range(NPANELS): # axs[i].plot(0.80-xoff, 0.9, color="black", marker=symlst[1], markersize=18, transform=axs[i].transAxes) # axs[i].text(0.83-xoff, 0.9, "BS16", color='black', fontsize=12, transform=axs[i].transAxes, va='center') # axs[i].plot(0.80-xoff, 0.72, color="blue", marker=symlst[1], markersize=12, transform=axs[i].transAxes) # axs[i].text(0.83-xoff, 0.72, r'$\hat{q}=0.90$', color='blue', fontsize=12, transform=axs[i].transAxes, va='center') # axs[i].plot(0.80-xoff, 0.54, color="purple", marker=symlst[1], markersize=12, transform=axs[i].transAxes) # axs[i].text(0.83-xoff, 0.54, "spherical", color='purple', fontsize=12, transform=axs[i].transAxes, va='center') from pltastro import legend lgd = legend.legend(axs[6]) lgd.addLine(("BS16 simulation", "black", "-", 1)) lgd.addLine(("BS16 prediction", "grey", "--", 1)) lgd.loc = "upper right" lgd.fontsize = 11 # lgd.set_label() lgd.draw() lgd = legend.legend(axs[7]) lgd.addLine(("PhEW $\hat{q}=0.90$", "blue", "-", 1)) lgd.addLine(("Spherical", "purple", "-", 1)) lgd.loc = "upper right" lgd.fontsize = 11 # lgd.set_label() lgd.draw() for i in range(NPANELS):
frm.params.height_ratios = [2, 1] frm.params.left = 0.20 fig, axs = draw(frm) for model in models: print("Plotting for model: ", model) data_sample = DIRS['SCIDATA'] + model + "/" + model + "_108.starinfo" halo_sample = DIRS['DATA'] + model + "/" + "so_z108.sovcirc" halos = pd.read_csv(halo_sample, sep='\s+', skiprows=1, names=cols_halos, dtype=dtypes_halos) tab = pd.read_csv(data_sample, sep='\s+', header=0) # zred = REDSHIFT draw_for_one_redshift(tab=tab, halos=halos, axs=axs, lstyle=lstyles[model]) from pltastro import legend lgd = legend.legend(ax=axs[1]) lgd.addLine(('cold', 'blue', '-', 1)) lgd.addLine(('hot', 'red', '-', 1)) lgd.addLine(('wind', 'green', '-', 1)) lgd.loc = 'upper right' lgd.draw() lgd2 = legend.legend(ax=axs[0]) for model in models: lgd2.addLine((model, 'black', lstyles[model], 1)) lgd2.loc = 'lower right' lgd2.draw() plt.savefig(DIRS['FIGURE']+"tmp.pdf") plt.show() print ("Done.")
fontsize=12, color="black") if PLOT_T04 == True: ax = axs[3] Mt04, Z16t04, Z50t04, Z84t04 = ioformat.rcol("../mzr/tremonti04.dat", [0, 2, 3, 4], linestart=1) Z16t04 = array(Z16t04) - OHSOLAR Z50t04 = array(Z50t04) - OHSOLAR Z84t04 = array(Z84t04) - OHSOLAR p, = ax.plot(Mt04, Z50t04, color="black", linestyle="-") # ax.plot(Mt04, Z50t04-0.3, color="purple", linestyle="-", linewidth=2) ax.plot(Mt04, Z16t04, color="black", linestyle="--") ax.plot(Mt04, Z84t04, color="black", linestyle="--") plist.append(p) axs[3].text(0.02, 0.02, "Tremonti+ (2004)", transform=axs[3].transAxes, fontsize=12, color="black") from pltastro import legend lgd = legend.legend(axs[0]) lgd.loc = "lower right" for mi in SHOW_MODEL_LIST: lgd.addLine((lgds[mi], clrs[mi], "-", 1)) lgd.draw() plt.savefig("/scratch/shuiyao/figures/tmp.pdf") plt.show()
ax1.set_ylim(0.0, 1.0) # ax1.set_yticks([0.0, 0.04, 0.08, 0.12, 0.16]) ax1.set_xlabel(r"$\log(M_{vir})$") # ax1.plot([11.0, 13.0], [0.15, 0.15], "k--") ax2 = ax1.twiny() ax2.set_xticks(y.tolist()) ax2.set_xticklabels(["9.0", "9.5", "10.0", "10.5", "11.0"]) ax2.set_xlabel(r"$\log(M_*)$") ax2.set_xlim(11.0, 13.0) ax2.figure.canvas.draw() ax1.set_ylabel(r"$(M_{gas}/M_{vir})(\Omega_m/\Omega_b)$") ax1.set_title("z = 0") #ax1.set_title("log(T/K) = 4.9") from pltastro import legend lgd = legend.legend(ax1) # lgd.addLine(("Cold", 'blue', '-', 1)) # lgd.addLine(("Hot", 'red', '-', 1)) # lgd.addLine(("ISM", 'orange', '-', 1)) lgd.addPatch(("Cold", 'blue', 'black')) lgd.addPatch(("Hot", 'red', 'black')) lgd.addPatch(("ISM", 'orange', 'black')) lgd.addPatch(("All", 'grey', 'black')) lgd.loc = "upper right" lgd.fontsize = 12 lgd.draw() if (ONEPANEL == False): ax1b = axs[1] snapstr = "058" #snapstr = "108"