Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
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()
Exemple #4
0
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()
Exemple #5
0
                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.")
Exemple #6
0
            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()
Exemple #7
0
        # 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))
Exemple #8
0
    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))
Exemple #9
0
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()
Exemple #10
0
            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):
Exemple #11
0
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.")
Exemple #12
0
                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()
Exemple #13
0
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"