def plot_1pt_distributions(param_file): param = dtk.Param(param_file) cluster_hfname = param.get_string("cluster_loc") zmr_hfname = param.get_string("zmrh5_loc") core_hfile = h5py.File(cluster_hfname, 'r') zmr_hfile = h5py.File(zmr_hfname, 'r') plot_cluster_mass( core_hfile, '/data/a/cpac/dkorytov/data/Ngal_sdss/data/normal_wmap7/query_results/query_results.hdf5' ) plot_cluster_redshift( 0.24, '/data/a/cpac/dkorytov/data/Ngal_sdss/data/normal_wmap7/query_results/query_results.hdf5' ) plot_cluster_cores2(core_hfile, [ 10, 10.5, 11, 11.5, 12, 12.5, 13.0, 13.5, ]) dtk.save_figs("figs/" + param_file + "/" + __file__ + "/") plt.show()
def plot_multiple_model_profiles(param_base, fig_dir): mstars = ['-1', '-0.5', '0', '0.5', '1'] for mstar in mstars: plot_profiles_mstar(param_base, mstar) dtk.save_figs(fig_dir+"/mstar"+mstar+"/", extension=".pdf", reset_count=True) dtk.save_figs(fig_dir+"/mstar"+mstar+"/", extension=".png") plt.show() plt.close('all')
def plot_saved_clusters(param_filename): global n2merger param = dtk.Param(param_filename) cluster_loc = param.get_string("cluster_loc") cluster_data = ClusterData() # n2lib_loc = "lib/libn2merg.so" # n2merger = N2Merger(n2lib_loc) # core_loc = param.get_string('core_loc').replace("${step}", str(401)).replace("_500L", "") fit_mi, fit_rd = get_fit_param(param_filename) # fit_mi, fit_rd = 1e12, 1e3 print("Infall mass: {:.2e}\nR disrupt: {:.4f}".format(fit_mi, fit_rd)) # test_core_catalog(core_loc, 1) cluster_data.load_file(cluster_loc) for i in range(int(cluster_data.num)): if cluster_data.mass[i] > 1e14: # cluster_data.plot_fit_cluster(i, 12.2, 0.02) # cluster_data.plot_cluster(i) cluster_data.plot_fit_cluster(i, fit_mi, fit_rd) dtk.save_figs("figs/" + __file__ + "/" + param_filename + "/", extension=".png") plt.show() plt.close('all')
def plot_zmr(param_fname): zmr = load_zmr(param_fname) mass_bins = zmr['m_bins'].value r_bins = zmr['r_bins'].value r_bins_center = dtk.bins_avg(r_bins) plt.figure() colors = ['b', 'g', 'r', 'c', 'm'] for i in range(0, len(mass_bins) - 1): if zmr['zm_counts'][0][i] > 2: rad_profile = zmr['zmr_gal_density'].value[0, i] rad_profile_err = zmr['zmr_gal_density_err'].value[0, i] label = "--" #"{:.2f} < log$_{{10}}$ M$_{{200c}}$ < {:.2f}".format(np.log(mass_bins[i]), np.log(mass_bins[i+1])) label = "{:.2f} $<$ log$_{{10}}$ M$_{{200c}}$ $<$ {:.2f}".format( np.log10(mass_bins[i]), np.log10(mass_bins[i + 1])) plt.errorbar(r_bins_center, rad_profile, yerr=rad_profile_err, fmt='-o', markeredgecolor='none', label=label, markerfacecolor=colors[i], color=colors[i], capsize=0) yerr_min = np.clip(rad_profile - rad_profile_err, a_max=np.inf, a_min=1e-3) plt.fill_between(r_bins_center, rad_profile + rad_profile_err, yerr_min, color=colors[i], alpha=0.3) plt.legend(loc='best', framealpha=0.0) plt.yscale('log') plt.xlabel('r/R$_{200c}$') plt.ylabel('$\Sigma_{galaxy} [(R_{200c})^{-2}$]') dtk.save_figs("figs/" + param_fname + "/" + __file__ + "/")
fit_rm_bins[fit_rm_bds_lwr], fit_rm_bins[fit_rm_bds_upr])) param_num += 1 txt_file.write("cost\t{}\n".format(np.min(result2))) dof = ( 5 * 15) - param_num #Five mass bins w/ halos. Each halo has 15 radial bins txt_file.write("X_red\t{}\n".format(np.min(result2) / dof)) def write_fit_param(param_file): fname = "output/" + param_file + "/fit_core_params.hdf5" print(fname) grad_descent_hfile = h5py.File(fname, 'r') fname = "figs/" + param_file + "/" + __file__ + "/fit_param.txt" dtk.ensure_dir(fname) txt_file = file(fname, 'w') for key in grad_descent_hfile.keys(): txt_file.write(key + "\t" + str(grad_descent_hfile[key][()][0]) + "\n") grad_descent_hfile.close() txt_file.close() if __name__ == "__main__": param_file_name = sys.argv[1] # write_fit_param(param_file_name) calc_likelihood_bounds(sys.argv[1]) dtk.save_figs('figs/' + param_file_name + '/' + __file__ + '/') dtk.save_figs('figs/' + param_file_name + '/' + __file__ + '/', extension='.pdf') plt.show()
yerrtop = err yerrbot = y-(np.maximum(y-err,ymin)) ax.errorbar(r_bins_avg,y,yerr = [yerrbot,yerrtop],fmt='-ok',mfc='none',mec='k') if(unity): norm = 1.0/np.sum(H5[i,:]/hm_counts[i]) y = H5[i,:]/r_bins_volume/hm_counts[i]*norm err = np.sqrt(H5[i,:])/r_bins_volume/hm_counts[i]*norm yerrtop = err yerrbot = y-(np.maximum(y-err,ymin)) ax.errorbar(r_bins_avg,y,yerr = [yerrbot,yerrtop],fmt='-sc',mfc='none',mec='c') if(unity): norm = 1.0/np.sum(H6[i,:]/hm_counts[i]) y = H6[i,:]/r_bins_volume/hm_counts[i]*norm err = np.sqrt(H6[i,:])/r_bins_volume/hm_counts[i]*norm yerrtop = err yerrbot = y-(np.maximum(y-err,ymin)) ax.errorbar(r_bins_avg,y,yerr = [yerrbot,yerrtop],fmt='-sm',mfc='none',mec='m') if(i==len(mass_bins_avg)-1): ax.errorbar([],[],yerr=[],fmt='-ok',mfc='none',mec='k',label='all') ax.errorbar([],[],yerr=[],fmt='-or',mfc='none',mec='r',label='core pos') ax.errorbar([],[],yerr=[],fmt='-ob',mfc='none',mec='b',label='infall prtcl') ax.errorbar([],[],yerr=[],fmt='-og',mfc='none',mec='g',label='rnd host prtcl') ax.errorbar([],[],yerr=[],fmt='-sc',mfc='none',mec='c',label='NFW profile') ax.errorbar([],[],yerr=[],fmt='-sm',mfc='none',mec='m',label='Centrals') ax.legend(loc='best',framealpha=0.5) dtk.save_figs(path='figs/'+param.file+"/gal_rad_prof/",extension=".png") plt.show()
figure = corner.corner( data, labels=[r'M$_{infall}$', r'R$_{disrupt}$', r'R$_{merger}$'], quantiles=[0.016, 0.5, 0.84], title_fmt='.3f', show_titles=True) if (not param.get_bool("fit_r_merger") and not param.get_bool("fit_r_fof")): data = np.column_stack( (np.log10(mcmc_m_i[slct_half]), mcmc_r_d[slct_half])) figure = corner.corner(data, labels=[r'M$_{infall}$', r'R$_{disrupt}$'], quantiles=[0.016, 0.5, 0.84], title_fmt='.3f', show_titles=True) plt.figure() max_id = np.max(mcmc_id) for i in range(0, max_id + 1): slct = mcmc_id == i plt.plot(mcmc_step[slct], mcmc_val[slct], '-', alpha=0.3) plt.ylabel('-Log Likelihood') plt.xlabel('step number') plt.yscale('log') print __file__ dtk.save_figs("figs/" + param.file_name + "/" + __file__ + "/", extension='.png') plt.show()
plt.grid() sod_mean, _, _ = stats.binned_statistic(halo_cat[step1]['fof_halo_mass'], sod_cnt, statistic='mean', bins=mass_bins) sod_var, _, _ = stats.binned_statistic(halo_cat[step1]['fof_halo_mass'], sod_cnt, statistic=np.std, bins=mass_bins) sod_cnt, _, _ = stats.binned_statistic(halo_cat[step1]['sod_halo_mass'], sod_cnt, statistic='count', bins=mass_bins) plt.figure() plt.plot(mass_bins_avg, sod_mean) plt.fill_between(mass_bins_avg, sod_mean - sod_var, sod_mean + sod_var, alpha=0.5) plt.xscale('log') plt.yscale('log') plt.title('SOD HOD') plt.xlabel('SOD halo mass [Msun/h]') plt.ylabel('Core count') plt.grid() dtk.save_figs("figs/" + param.file + "/plot_hod.py/") plt.show()
plot_survival_ratio([centers_or, survival_or, survival_err_or], [centers_qc, survival_qc, survival_err_qc]) if __name__ == "__main__": # mstars = [-1, 0, 0.5, 1] # plot_luminosity_dependence("params/cfn/simet/mstar@val@/mean/a2_mi.param", mstars, ['mi', 'rd', 'rm', 'x2']) # plot_luminosity_dependence("params/cfn/simet/mstar@val@/mean/a_rd.param", mstars, ['mi', 'rd', 'x2']) # plot_luminosity_dependence("params/cfn/simet/mstar@val@/mean/a_rm.param", mstars, ['mi', 'rm', 'x2']) # plot_luminosity_dependence("params/cfn/simet/mstar@val@/mean/a_rd_rm.param", mstars, ['mi', 'rd', 'rm', 'x2']) # plot_luminosity_dependence_parameters_all() # plot_luminosity_dependence_survival() # Useless function calls # plot_luminosity_dependent_ngal_all("params/cfn/simet/mstar0/mean/a3_rd.param") # plot_luminosity_dependent_ngal_all("params/cfn/simet/mstar0/mean/qc_rd.param") if len(sys.argv)<2: raise KeyError('No argument given') exit() plot_name = sys.argv[1] if plot_name == 'OR_Simet': plot_luminosity_dependence_parameters_OR_Simet() elif plot_name == 'OR_McClintock': plot_luminosity_dependence_parameters_OR_McClintock() elif plot_name == "LJ_McClintock": plot_luminosity_dependence_parameters_LJ_McClintock() else: raise KeyError("\"{}\" is not a plotting option".format(plot_name)) dtk.save_figs("figs/"+__file__+"/"+plot_name+'/', extension=".pdf") dtk.save_figs("figs/"+__file__+"/"+plot_name+'/', extension=".png") plt.show()
def plot_core_trajectory(core_fname_pattern, steps): cat = get_full_core_catalog(core_fname_pattern, steps) slct = cat['step']==steps[0] print('select size: ', slct.size/ np.sum(slct)) # sort ids by infall tree node mass core_masses = cat['infall_tree_node_mass'][slct] srt = np.argsort(core_masses)[::-1] srt = np.argsort(srt) core_tags = cat['core_tag'][slct][srt] core_masses = core_masses[srt] for core_tag, core_mass in zip(core_tags, core_masses): slct = cat['core_tag']==core_tag srt = np.argsort(cat['step'][slct]) x = cat['x'][slct][srt] y = cat['y'][slct][srt] z = cat['z'][slct][srt] vx = cat['vx'][slct][srt] vy = cat['vy'][slct][srt] vz = cat['vz'][slct][srt] step = cat['step'][slct][srt] radius = cat['radius'][slct][srt] mass = cat['infall_tree_node_mass'][slct][srt] central = cat['central'][slct][srt] == 1 print(list(zip(x,y))) print(cat['step'][slct][srt]) step_mid = dtk.bins_avg(step) central_step = np.diff(central) fig, axs = plt.subplots(2, 3, figsize=(15, 8)) fig.suptitle('TreeNodeMass={:.2e}\nCore Tag:{}'.format(core_mass, core_tag)) axs[0][0].plot(x-x[-1], y-y[-1], '-o', mfc='none', label='Path') axs[0][0].plot(x[-1]-x[-1], y[-1]-y[-1], 'o', ms=20, mfc='none', label='Last Pos', color='tab:orange') axs[0][0].plot(x[central]-x[-1], y[central]-y[-1], 'o', label='Central', color='tab:blue') axs[0][0].legend(framealpha=0.0) axs[0][0].axis('equal') axs[0][0].set_xlabel('x') axs[0][0].set_ylabel('y') axs[0][1].plot(z-z[-1], y-y[-1], '-o', mfc='none', label='Path') axs[0][1].plot(z[-1]-z[-1], y[-1]-y[-1], 'o', ms=20, mfc='none', label='Last Pos') axs[0][1].plot(z[central]-z[-1], y[central]-y[-1], 'o', label='Central', color='tab:blue') axs[0][1].axis('equal') axs[0][1].set_xlabel('z') axs[0][1].set_ylabel('y') axs[0][1].set_ylim(axs[0][0].get_ylim()) dx = np.diff(x) dy = np.diff(y) dz = np.diff(z) dr = np.sqrt(dx*dx + dy*dy + dz*dz) axs[0][2].plot(step_mid, dr, '-o') axs[0][2].fill_between(step_mid, 0, dr, alpha=0.3) axs[0][2].set_xlabel('Mid Step') axs[0][2].set_ylabel('displace per snapshot [Mpc/h]') dv = np.sqrt(vx*vx + vy*vy + vz*vz)[1:] # dx = vx[1:] # dy = vy[1:] # dz = vz[1:] theta = np.arccos((vx[1:]*dx + vy[1:]*dy + vz[1:]*dz)/(dv*dr)) theta = theta*180.0/np.pi # theta = (dx*dx + dy*dy + dz*dz)/(dr*dr) # theta = np.arccos axs[1][2].plot(step_mid, theta, '-o') axs[1][2].fill_between(step_mid, 0, theta, alpha=0.3) axs[1][2].set_xlabel('Mid Step') axs[1][2].set_ylabel('Angle between displ. and vel. [deg.]') axs[1][0].plot(step, mass, '-o', mfc='none') axs[1][0].fill_between(step, np.min(mass), mass, alpha=0.3) axs[1][0].plot(step[-1], mass[-1], 'o', ms=20, mfc='none') axs[1][0].plot(step[central], mass[central], 'o', color='tab:blue') axs[1][0].set_xlabel('Step') axs[1][0].set_ylabel('Infall Mass [Msun/h]') axs[1][0].set_yscale('log') axs[1][1].plot(step, radius*1000.0, '-o', mfc='none') axs[1][1].fill_between(step, 0, radius*1000.0, alpha=0.3) axs[1][1].plot(step[-1], radius[-1]*1000.0, 'o', ms=20, mfc='none') axs[1][1].plot(step[central], radius[central]*1000.0, 'o', color='tab:blue') axs[1][1].set_xlabel('Step') axs[1][1].set_ylabel('Core Radius [Kpc/h]') axs[1][1].set_ylim([0, 200]) # axs[1][1].set_yscale('log') plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # plt.show() dtk.save_figs('figs/'+__file__+'/individual_cores_random_rev4070_v2/') plt.close()
label='all') ax.errorbar([], [], yerr=[], fmt='-or', mfc='none', mec='r', label='core pos') ax.errorbar([], [], yerr=[], fmt='-ob', mfc='none', mec='b', label='infall prtcl') ax.errorbar([], [], yerr=[], fmt='-og', mfc='none', mec='g', label='rnd host prtcl') ax.errorbar([], [], yerr=[], fmt='-oc', mfc='none', mec='c', label='nfw profile') plt.legend(loc='best', framealpha=0.5) dtk.save_figs(path='figs/' + param.file + '/gal_lum_func/', extension='.png') plt.show()
plt.xscale('log') #plt.colorbar() plt.figure() plt.title("Sum of cost") plt.pcolor(X, Y, (cost_mat_gal_den.T + cost_mat_Ngal.T) / 2.0, norm=LogNorm(), vmax=min(1e2, np.max(cost_mat_gal_den))) plt.xlabel('disruption length') plt.ylabel('merger length') plt.yscale('log') plt.xscale('log') #plt.colorbar() dtk.save_figs("figs/" + param.file + "/") plt.show() exit() plt.figure() for i in range(0, 7): #z_size): plt.plot(m_avg, core_zmr['zm_Ngal'][i, :], '-x', label='z:%.2f' % (z_avg[i])) plt.plot(m_avg, zmr_sdss['Ngal'][i, :], "-s", label='z:%.2f' % (z_avg[i])) plt.title("Ngal") plt.legend() plt.yscale('log') plt.xscale('log')
err = zmr_err_sdss**2 + zmr_err_core**2 res = diff / err total = np.sum(res) total_sum += np.sum(res) plt.plot(r_avg, res, 'o-', color=c, label='%.2e$<$M200$<$%.2e:%f' % (zmr_cores2.m_bins[mi], zmr_cores2.m_bins[mi + 1], total)) if (c_i == 9): for i in range(0, 10): print("diff:") print(zmr_gd_sdss[i], "-", zmr_gd_core[i], "=", zmr_gd_sdss[i] - zmr_gd_core[i]) print("->", diff[i]) print("err:") print(zmr_err_sdss[i], "+", zmr_err_core[i], "=", err[i]) print("res:") print(res[i]) plt.title("Source of Error [%f]" % total_sum) plt.grid() plt.legend(loc='best', framealpha=0.5) plt.xlabel(r'$R/R_{200}$') plt.ylabel(r'\text{Error}') plt.yscale('log') #dtk.set_fig_path("figs/zmrs/") dtk.save_figs("figs/" + param_file1 + "/" + __file__ + "/" + param_file2 + "/", extension=".png") plt.show()
def plot_saved_clusters(param_fname): param = dtk.Param(param_fname) query_data_file = param.get_string( 'query_data_folder') + 'query_results.hdf5' mstar_offset = param.get_int('mstar_cut_offset') query_results = param.get_string("query_data_folder") query_cluster_all = param.get_bool('query_cluster_all') query_cluster_num = param.get_int('query_cluster_num') query_type = param.get_string('query_type') cosmology_name = param.get_string("cosmology_name") galaxy_type = param.get_int("galaxy_type") galaxy_weight = param.get_int("galaxy_weight") galaxy_color_type = param.get_int("galaxy_color_type") galaxy_mag_type = param.get_int("galaxy_mag_type") galaxy_color_lim = param.get_float_list("galaxy_color_lim%d" % galaxy_color_type) galaxy_mag_lim = param.get_float_list("galaxy_mag_lim%d" % galaxy_mag_type) background_folder = param.get_string("background_folder") background_force = param.get_bool("background_force") background_all = param.get_bool("background_all") background_num = param.get_int("background_num") # z bins for background estimate background_z_start = param.get_float('background_z_start') background_z_end = param.get_float('background_z_end') background_z_num = param.get_float('background_z_num') # external data such as spt spt_plot = param.get_bool("spt_plot") spt_file = param.get_string("spt_file") #params for the final cluster bining z_bins_num = param.get_int("z_bins") z_bins_start = param.get_float("z_bins_start") z_bins_end = param.get_float("z_bins_end") mass_bins_num = param.get_int("mass_bins") mass_bins_start = param.get_float("mass_bins_start") mass_bins_end = param.get_float("mass_bins_end") radial_r200_rescale = param.get_bool('radial_r200_rescale') radial_bin_num = param.get_int('radial_bin_num') radial_bin_kpc_min = param.get_float('radial_bin_kpc_min') radial_bin_kpc_max = param.get_float('radial_bin_kpc_max') radial_bin_r200_min = param.get_float('radial_bin_r200_min') radial_bin_r200_max = param.get_float('radial_bin_r200_max') RS_line_plot = param.get_bool('RS_line_plot') #params for saving the resulting profiles result_folder = param.get_string("result_folder") if ('mstar_cut_offset' in param.data.keys()): mstar_cut_offset = param.get_float('mstar_cut_offset') else: mstar_cut_offset = 1.0 if 'background_r200_factor' in param: background_r200_factor = param.get_float('background_r200_factor') else: background_r200_factor = 1.0 if 'richness_mass_author' in param: richness_mass_author = param.get_string("richness_mass_author") else: richness_mass_author = None if 'convert_m200m_to_m200c' in param: convert_m200m_to_m200c = param.get_bool('convert_m200m_to_m200c') else: convert_m200m_to_m200c = False if 'convert_m200c_to_m200m' in param: convert_m200c_to_m200m = param.get_bool('convert_m200c_to_m200m') else: convert_m200c_to_m200m = False ####################### ## Processing Params ## ####################### background_z_bins = np.linspace(background_z_start, background_z_end, int(background_z_num)) if (galaxy_type == 1): galaxy_type_name = "all" elif (galaxy_type == 2): galaxy_type_name = "red" elif (galaxy_type == 3): galaxy_type_name = "non-red" else: print("unknwon galaxy type") raise if (galaxy_weight == 1): galaxy_weight_name = "normal" elif (galaxy_weight == 2): galaxy_weight_name = "red squence" elif (galaxy_weight == 3): galaxy_weight_name = 'red squence rykoff' else: print("unknown galaxy weight") raise if (galaxy_color_type == 1): galaxy_color_name = 'g-r' elif (galaxy_color_type == 2): galaxy_color_name = 'g-r - RS(z)' if (galaxy_mag_type == 1): galaxy_mag_name = 'i' elif (galaxy_mag_type == 2): galaxy_mag_name = 'i-m*(z)' background.set_gal_clr_type(galaxy_color_type, galaxy_color_lim) background.set_gal_mag_type(galaxy_mag_type, galaxy_mag_lim) background.set_gal_type_weight(galaxy_type, galaxy_weight) background.set_cosmology(cosmology_name) background.set_mstar_cut(mstar_cut_offset) background.set_mstar_cut(param.get_float('mstar_cut_offset')) [dataclstr, datagal, data_pass_mask, clstr_num] = background.get_clstr( query_type, query_results, 100, till_end=False, # query_cluster_num, # till_end=query_cluster_all, richness_mass_author=richness_mass_author, convert_m200c_to_m200m=convert_m200c_to_m200m, convert_m200m_to_m200c=convert_m200m_to_m200c) for i in range(0, 400): print(list(dataclstr[i].keys())) print(list(datagal[i].keys())) gal_prop = dataclstr[i] gal = datagal[i] rad = float(gal_prop['r200_arcmin']) / 60 dec = float(gal_prop['dec']) ra = float(gal_prop['ra']) mass = float(gal_prop['m200']) z = float(gal_prop['z']) if dec > 10 or mass < 2e14 or z > 0.35: continue plt.figure() print(ra, dec, rad) # c1 = plt.Circle((ra, dec), rad, fill=True, color='r', lw=2) e_r200 = matplotlib.patches.Ellipse((ra, dec), rad / np.cos(dec / 360) * 2.0, rad * 2.0, fill=False, color='k', lw=2) plt.gca().add_artist(e_r200) # plotting radial bins for j in range(0, 16): rad_bin = float(j) / 16 * rad e_bin = matplotlib.patches.Ellipse( (ra, dec), rad_bin / np.cos(dec / 360) * 2.0, rad_bin * 2.0, fill=False, color='k', lw=1, ls='--') plt.gca().add_artist(e_bin) plt.ylabel('Dec [deg]') plt.xlabel('Ra [deg]') plt.plot([], [], 'k', lw=2, label='$R_{200c}$') plt.plot([], [], 'k', ls='--', label='radial bins') ## Galaxies # bright saturated satur_center nopetro deblended_as_moving cut_flgs = 0x0000000000000002 | 0x0000000000040000 | 0x0000080000000000 | 0x0000000000000100 | 0x0000000100000000 flgs = gal['flags_i'] | gal['flags_r'] | gal['flags_g'] slct1 = gal['type'] != 31 slct2 = np.logical_not(flgs & cut_flgs) slct3 = gal['m_i'] < background.m_cut(z) slct = slct1 & slct2 & slct3 plt.plot(gal['ra'][slct], gal['dec'][slct], '.', alpha=0.6, label='galaxies') plt.text( 0.05, 0.05, 'M$_{{200c}}$=\n{:2.2e}[$h^{{-1}}$M$_{{\odot}}$]'.format(mass), transform=plt.gca().transAxes, verticalalignment='bottom', horizontalalignment='left') plt.text(0.95, 0.05, 'z={:.2f}'.format(z), transform=plt.gca().transAxes, verticalalignment='bottom', horizontalalignment='right') plt.legend(framealpha=0.0, labelspacing=0) plt.axis('equal') pyplot_zoom_out(top=0.2, right=-0.5, left=0.3) plt.tight_layout() dtk.save_figs('figs/' + __file__ + '/', '.pdf') plt.close('all')
num = float(np.sum(slct)) tot = float(np.sum(slct_m & slct_minfall)) H,_ = np.histogram(core_radial[slct],bins=radial_bins,normed=True) if(np.sum(H) > 0): plt.plot(radial_bins_avg,H/radial_bins_area,label=r'R$_disrupt$=%.3f fract[%.2f]'%(r_disrupt_cuts[i],num/tot)) plt.title("%.1e $<$ Mfof $<$ %.1e\nM$_{infall}$=%.1e"%(min_mass,max_mass,m_infall_cut)) plt.legend(loc='best') plt.yscale('log') plt.xlabel('r/r200') plt.ylabel('normalized core surface density') plt.figure() r_disrupt_cut = 0.02 slct_r = core_r < r_disrupt_cut tot = float(np.sum(slct_r)) for i in range(0,len(m_infall_cuts)): slct_m = core_m < m_infall_cuts[i] slct = slct_r & slct_m num = float(np.sum(slct)) H,_ = np.histogram(core_radial[slct],bins=radial_bins,normed=True) if(np.sum(H)>0): plt.plot(radial_bins_avg,H/radial_bins_area,label='M$_{infall}$=%.e fract[%.2f]'%(m_infall_cuts[i],num/tot)) # plt.title("%.1e $<$ Mfof $<$ %.1e\nR_disrupt=%.3f"%(min_mass,max_mass,r_disrupt_cut)) plt.yscale('log') plt.legend(loc='best', framealpha=0.0) plt.xlabel('r/r200') plt.ylabel('normalized core surface density') dtk.save_figs(path='figs/radial_core_prop/',extension='.png') plt.show()
s=gal_w[slct_gal] * 20, label='compact cores[%d/%d/%d]' % (np.sum(slct_gal), np.sum(gal_w[slct_gal]), core_x.size)) plt.scatter(gal_x[slct_bcg], gal_y[slct_bcg], marker='o', color=m_alpha, s=30, label='disrupted fof groups[%d]' % np.sum(slct_bcg)) plt.plot(halo_x, halo_y, 's', label='halo center', mec='c', mfc='none', mew=1.5) plt.plot([], [], 'k', label='SOD radius' % halo_r) plt.xlabel('x [h^-1 Mpc]') plt.ylabel('y [h^-1 Mpc]') plt.axis('equal') plt.grid() if (np.sum(slct_gal) + np.sum(slct_bcg) > 0): plt.legend(loc='best', framealpha=.5) plt.tight_layout() #plt.show() dtk.save_figs(extension='.png') plt.close() print i i += 1
plt.pcolor(mag_bins,clr_bins,H_radial_sum.T,cmap=plt.cm.BuPu,norm=LogNorm()) if(np.max(H_radial_sum) != np.min(H_radial_sum)): plt.colorbar() plt.title("radial sum: %e"%np.sum(H_radial_sum)) plt.subplot(1,4,2) plt.pcolor(mag_bins,clr_bins,h_all.T,cmap=plt.cm.BuPu,norm=LogNorm()) if(np.max(h_all) != np.min(h_all)): plt.colorbar() plt.title("normal sum: %e"%np.sum(h_all)) plt.subplot(1,4,3) h_diff = h_all - H_radial_sum print(np.nanmean(h_all/H_radial_sum), 1.0/ np.nanmean(h_all/H_radial_sum)) plt.pcolor(mag_bins,clr_bins,h_diff.T,cmap=plt.cm.RdBu) plt.title("diff sum: %e"%np.sum(h_diff)) plt.subplot(1,4,4) plt.pcolor(mag_bins,clr_bins,H_bkgnd_sqkpc([z_bins[i+1]]).T,cmap=plt.cm.BuPu,norm=LogNorm()) plt.colorbar() plt.title("bkgnd sum: %e"%np.sum(H_bkgnd_sqkpc([z_bins[i+1]]))) plt.tight_layout() dtk.save_figs("figs/"+param.file+"/rad_profile/") plt.show() radial_profile = load_radial_profile(result_folder,galaxy_type,galaxy_weight)
plt.xlabel('Clustering Miscentering Distance\n[h$^{-1}$ Mpc Comoving]') plt.legend(framealpha=0.0) # plt.yscale('log') plt.tight_layout() num_clusters = len(cat['z_lambda']) avg_displaced = np.sum((probs*d_kpcs))/num_clusters print("Average Miscentering: {:2f} [comoving kpc/h]".format(avg_displaced)) print("Average Distance when Miscentered: {:.2f} [comoving kpc/h]".format(np.average(non_center_avg_prob))) print("Miscentering Prob: {:.2f}".format(np.average(correct_prop))) def test_saved_data(fname='data/Pr_center/distribution1.hdf5'): hfile = h5py.File(fname,'r') data = hfile['radii'][:] plt.figure() plt.hist(data/1000, bins=100, histtype='step') plt.ylabel('Counts') plt.xlabel('Distance [Mpc Physical]') plt.yscale('log') if __name__ == "__main__": # fname = 'redmapper_dr8_public_v6.3_members.fits.gz' # calculate_Pr_center(fname) fname = 'redmapper_dr8_public_v6.3_catalog.fits.gz' calculate_Pr_center2(fname) test_saved_data() dtk.save_figs('figs/'+__file__+'/', '.pdf') dtk.save_figs('figs/'+__file__+'/', '.png') plt.show()
def plot_exclude_central_region(): excludes = [0, 1, 2, 3, 4, 5] labels = np.array(excludes, dtype=np.float)/15.0 param_file_base = "figs/params/cfn/simet/mstar0/mean/a_#model#_cen#exclude#.param/calc_likelihood_bounds.py/grid_fit_param.txt" # param_files_mi = [param_file_base.replace("#model#", "mi").replace("#exclude#", str(exclude)) for exclude in excludes] param_files_rd = [param_file_base.replace("#model#", "rd").replace("#exclude#", str(exclude)) for exclude in excludes] param_files_rm = [param_file_base.replace("#model#", "rm").replace("#exclude#", str(exclude)) for exclude in excludes] param_files_rd_rm = [param_file_base.replace("#model#", "rd_rm").replace("#exclude#", str(exclude)) for exclude in excludes] # plot_radii_effects(param_files_mi, labels, ['mi', 'x2']) plot_radii_effects(param_files_rd, labels, ['mi', 'rd', 'x2'], xlabel='Central Exclusion Radius/R$_{200m}$', plot_reference=0) plot_radii_effects(param_files_rm, labels, ['mi', 'rm', 'x2'], xlabel='Central Exclusion Radius/R$_{200m}$', plot_reference=0) plot_radii_effects(param_files_rd_rm, labels, ['mi', 'rd', 'rm', 'x2'], xlabel='Central Exclusion Radius/R$_{200m}$', plot_reference=0) if __name__ == "__main__": # default plot if len(sys.argv) != 2: plot_name = "radial_volume" else: plot_name = sys.argv[1] # different plots if plot_name == "radial_volume": plot_cluster_radial_volume(); elif plot_name == "exclude_volume": plot_exclude_central_region() else: raise KeyError("\"{}\" not a predefined plot".format(plot_name)) dtk.save_figs("figs/"+__file__+"/"+plot_name+"/", extension='.pdf') plt.show()
start,end = dtk.select_sorted(sbh_cat[step]['fof_halo_tag'],htag,sorter=sbh_srt) sbh_x = sbh_cat[step]['subhalo_mean_x'][sbh_srt[start:end]]/h-x sbh_y = sbh_cat[step]['subhalo_mean_y'][sbh_srt[start:end]]/h-y start,end = dtk.select_sorted(core_cat[step]['fof_halo_tag'],htag,sorter=core_srt) core_x = core_cat[step]['x'][core_srt[start:end]]/h-x core_y = core_cat[step]['y'][core_srt[start:end]]/h-y start,end = dtk.select_sorted(bhp_cat[step]['fof_halo_tag'],htag,sorter=bhp_srt) bhp_x = bhp_cat[step]['x'][bhp_srt[start:end]]/h-x bhp_y = bhp_cat[step]['y'][bhp_srt[start:end]]/h-y H,x_bins,y_bins = np.histogram2d(bhp_x,bhp_y,bins=(150,150)) plt.figure() plt.pcolormesh(x_bins,y_bins,H.T,cmap='gray_r',norm = clrs.LogNorm()) plt.plot(sbh_x,sbh_y,'x',mec='b',mfc='none',label=r'subhalos',mew=1.2,ms=8) plt.plot(core_x,core_y,'o',mec='r',mfc='none',label=r'cores',mew=1.0,ms=8) circle1 = plt.Circle((0,0),rad,facecolor='None',edgecolor='k') plt.gca().add_artist(circle1) plt.plot([],[],'k',label=r'R$_{200}$=%.2fMpc'%(rad)) plt.axis('equal') plt.legend(loc='best') plt.xlabel(r'x [Mpc]') plt.ylabel(r'y [Mpc]') ax = plt.gca() ax.text(0.1,0.9,r'M$_{200c}$=%.2e M${_\odot}$'%mass,transform=ax.transAxes,fontsize=15) plt.grid() dtk.save_figs(path='figs/subhalos_cores/',extension='.png') plt.close() #plt.show()
# axs[1][1].set_yscale('log') plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # plt.show() dtk.save_figs('figs/'+__file__+'/individual_cores_random_rev4070_v2/') plt.close() if __name__ == "__main__": if sys.argv[1] == 'histories' or sys.argv[1] == 'history': steps=[499, 487, 475, 464, 453, 442, 432, 421, 411, 401, 392, 382, 373, 365, 355, 347, 338, 331, 323, 315, 307, 300, 293, 286, 279, 272, 266, 259, 253, 247, 241, 235, 230, 224, 219, 213, 208, 203, 198, 194, 189, 184, 180, 176, 171, 163, 159, 155, 151, 148, 144, 141, 137, 134, 131, 127, 124, 121, 119, 116, 113, 110, 107, 105, 102, 100, 97, 95, 92, 90, 88, 84, 81, 79, 77, 76, 74, 72, 70, 68, 67, 65, 63, 62, 60, 59, 57, 56, 54, 53, 52, 50, 49, 48, 46, 45, 44, 43] # steps=[307, 300, 293, 286, 279, 272, 266, 259, 253, 247, 241, 235, 230, 224, 219, 213, 208, 203, 198, 194, 189, 184, 180, 176, 171, 163, 159, 155, 151, 148, 144, 141, 137, 134, 131, 127, 124, 121, 119, 116, 113, 110, 107, 105, 102, 100] # steps=[307, 300, 293, 286, 279, 272, 266, 259, 253, 247, 241, 235, 230, 224, 219, 213, 208] # steps=[307, 300, 293, 286, 279, 272, 266, 259] core_fname_pattern = '/data/a/cpac/dkorytov/data/AlphaQ/core_catalog10_rev4070/$step$.coreproperties' plot_core_trajectory(core_fname_pattern, steps) elif sys.argv[1] == 'aggregate' or sys.argv[1] == 'agg': core_fname_pattern = '/data/a/cpac/dkorytov/data/OuterRim/core_catalog/03_31_2018.OR.$step$.coreproperties' core_fname_pattern = '/data/a/cpac/dkorytov/data/AlphaQ/core_catalog10_rev4070/$step$.coreproperties' plot_core_properties(core_fname_pattern.replace('$step$', str(499))) dtk.save_figs('figs/'+__file__+'/AQ/', extension='.png') dtk.save_figs('figs/'+__file__+'/AQ/', extension='.pdf') plt.show() else: raise KeyError("{} not a plotting option".format(sys.argv[1]))
def load_all3(pattern, models, data_inputs, data_input_labels, data_clr, data_mfc, title=None): fig = plt.figure(figsize=(5, 3)) if title is not None: plt.suptitle(title) gs = gridspec.GridSpec(1, 4, hspace=0.1) model_params_ax = { 'mi': plt.subplot(gs[:, 0]), 'rd': plt.subplot(gs[:, 1]), 'rm': plt.subplot(gs[:, 2]), 'x2': plt.subplot(gs[:, 3]) } model_params = ['mi', 'rd', 'rm'] for model_i, model in enumerate(models): for data_i in range(0, len(data_inputs)): model_param_fit = load_fit_limits( pattern.format(data_inputs[data_i][0], data_inputs[data_i][1], model)) print("\n\n", model, data_inputs[data_i]) print(model_param_fit) if len(data_inputs) == 1: y = -model_i else: y = -(model_i - 0.15 + 0.3 / (len(data_inputs) - 1) * data_i) for model_param in model_params: if model_param in model_param_fit: print(model_param) ax = model_params_ax[model_param] x = model_param_fit[model_param] xerr = [[model_param_fit[model_param + "_lower_err"]], [model_param_fit[model_param + "_upper_err"]]] ax.errorbar(x, y, xerr=xerr, fmt='o', color=data_clr[data_i], mfc=data_mfc[data_i], mec=data_clr[data_i]) # model_params_ax['x2'].errobar(model_param_fit['x2'], y, fmt='o', color=data_clr[data_i], mfc=data_mfc[data_i], mec=data_clr[data_i]) model_params_ax['x2'].barh(y, model_param_fit['x2'], align='center', height=0.2, edgecolor='none', color=data_clr[data_i]) model_params_ax['mi'].set_ylim([ -3.2, 0.2, ]) model_params_ax['rd'].set_ylim(model_params_ax['mi'].set_ylim()) model_params_ax['rm'].set_ylim(model_params_ax['mi'].set_ylim()) model_params_ax['x2'].set_ylim(model_params_ax['mi'].set_ylim()) model_params_ax['mi'].set_xlabel('$M_{infall}$') model_params_ax['rd'].set_xlabel('$R_{disrupt}$') model_params_ax['rm'].set_xlabel('$M_{merge}$') model_params_ax['x2'].set_xlabel(r'$\chi^{2}_{reduced}$') for (key, ax) in model_params_ax.items(): # if key != 'x2': # ax.xaxis.set_major_locator(ticker.MultipleLocator(0.1)) # else: ax.xaxis.set_major_locator(plt.MaxNLocator(4)) ax.yaxis.set_ticks([-0, -1, -2, -3]) ax.yaxis.set_ticklabels(["Mi", "Rd", "Rm", "RdRm"]) for tick in ax.xaxis.get_ticklabels(): tick.set_rotation(45) model_params_ax['rd'].yaxis.set_ticklabels([]) model_params_ax['rm'].yaxis.set_ticklabels([]) model_params_ax['x2'].yaxis.set_ticklabels([]) # model_params_ax['rd'].xaxis.set_major_locator(ticker.MultipleLocator(5)) # ax = model_params_ax['rd'] # ax.plot([],[], linewidth=5, color='b', label='$M_{200m}$') # ax.plot([],[], linewidth=5, color='r', label='$M_{200c}$') # ax.errorbar([],[],xerr=[], fmt='o', color='k', mec='k', mfc='k', # label='profile only') # ax.errorbar([],[],xerr=[], fmt='o', color='k', mec='k', mfc='none', # label='profile + abundance') # ax.legend(bbox_to_anchor=(-1., 1.02, 4, .102), loc='lower center', # ncol=2, mode="expand", borderaxespad=0.) # plt.tight_layout() # gs.tight_layout(fig) plt.gcf().subplots_adjust(bottom=0.3, left=0.15) dtk.save_figs("figs/" + __file__ + "/", extension='.pdf')
a_max=max(rad_den)), rad_den + rad_den_err, alpha='0.5', color=c) rad_den = zmr_sdss['rad_prof'][i, j] rad_den_err = zmr_sdss['rad_prof_err'][i, j] plt.plot(rad_bin_avg, rad_den, 'x--', color=c) plt.fill_between(rad_bin_avg, np.clip(rad_den - rad_den_err, a_min=minimum, a_max=max(rad_den)), rad_den + rad_den_err, color=c, alpha='0.5') plt.plot([], [], color=c, label='%.1e<M200<%.1e' % (zmr_sdss['mass_bins'][j], zmr_sdss['mass_bins'][j + 1])) plt.plot([], [], 'kx--', label='RedMapper Gal. Profile') plt.plot([], [], 'ko-', label='Core Gal. Profile') plt.grid() plt.legend(loc='best', fancybox=True, framealpha=0.5) plt.xlabel(r'$R/R_{200}$') plt.ylabel(r'$\Sigma_{gal}$[$gal/R_{200}^{2}$]') plt.yscale('log') plt.gca().set_ylim(bottom=1) dtk.save_figs("figs/" + param.file + "/core_fit2.py/") plt.show()
h_3d / r_bins_volume / cluster_m_cut_count, '-', label=label, color=colors[i]) for fig, ax in [(f_2d, ax_2d), (f_3d, ax_3d)]: ax.set_yscale('log') cb = fig.colorbar(sm) cb.set_label('R$_{merge}$') if ax == ax_2d: ax.set_ylabel('Galaxy Surface Density [R$_{200c}$$^{-2}$]') else: ax.set_ylabel('Galaxy Density [R$_{200c}$$^{-3}$]') ax.set_xlabel('r/R$_{200c}$') fig.tight_layout() def plot_cluster_radial_core_prop(fname): clusters = ClusterData() clusters.load_file(fname, core_host_mass=True) clusters.set_core_radial_distance(write_cache=False) # plot_radial(clusters) plot_profile(clusters) if __name__ == "__main__": # plot_cluster_radial_core_prop("tmp_hdf5/clusters_AQ_M200c.hdf5") plot_cluster_radial_core_prop("tmp_hdf5/clusters_OR_M200c.hdf5") dtk.save_figs("figs/" + __file__ + "/OR/", extension=".pdf") dtk.save_figs("figs/" + __file__ + "/OR/", extension=".png") plt.show()
dis_merg_collapse.T, norm=LogNorm(), cmap='PuBu') #,norm=LogNorm(), plt.contour(dis_avg, merg_avg, dis_merg_collapse.T, lvls) plt.xlabel('R_disrupt [h^-1 Mpc]') #plt.xlabel('M_infall [h^-1 M_sun]') plt.ylabel('R_merger [h^-1 Mpc]') plt.xscale('log') merg_infall_collapse = np.sum(likelihood, axis=0) lvls = dtk.conf_interval(merg_infall_collapse, sigmas) plt.figure() plt.pcolor(merg_bins, infall_bins, merg_infall_collapse.T, norm=LogNorm(), cmap='PuBu') #,norm=LogNorm(), plt.contour(merg_avg, infall_avg, merg_infall_collapse.T, lvls) #plt.xlabel('R_disrupt [h^-1 Mpc]') plt.ylabel('M_infall [h^-1 M_sun]') plt.xlabel('R_merger [h^-1 Mpc]') #plt.xscale('log') total_end = time.time() print "total time: ", total_end - total_start dtk.save_figs("figs/" + param.file + "/plot_likelihood.py/", extension='.png') plt.show()
plt.pcolor(x_bins, y_bins, H.T, cmap='PuBu') cb = plt.colorbar() plt.ylabel('SDSS r-band abs. Mag.') plt.xlabel('Log10(Stellar Mass [Msun/h])') cb.set_label('Freq') plt.tight_layout() plt.grid() H, x_bins = np.histogram(stellar_mass, bins=100) x_bins_avg = dtk.bins_avg(x_bins) plt.figure() plt.plot(x_bins_avg, H) plt.ylabel('Freq') plt.xlabel('Log10(Stellar Mass [Msun/h])') plt.grid() H, x_bins = np.histogram(mag_r, bins=100) x_bins_avg = dtk.bins_avg(x_bins) plt.figure() plt.plot(x_bins_avg, H) plt.ylabel('Freq') plt.xlabel('SDSS r-band abs. Mag.') plt.grid() # plt.figure() # plt.pcolor(x_bins,y_bins,H.T,cmap='viridis',norm=clr.LogNorm()) # plt.colorbar() dtk.save_figs('figs/' + param.file + '/' + __file__ + '/') plt.show()
plt.title("Fraction of Galaxies w/ Cores") plt.pcolor(x_bins, y_bins, H3T_ma, cmap='jet', vmax=np.nanmax(H3), vmin=np.nanmin(H3)) cb = plt.colorbar() cb.set_label('Fraction with Cores') plt.xscale('log') plt.xlabel('Host Halo FoF Mass [Msun/h]') plt.ylabel('SDSS i-band Magnitude') plt.tight_layout() plt.grid() dtk.save_figs(path='figs/' + param.file + '/plot/', extension='.png') plt.show() print "starting loop" i = 0 for htag in htags: #h = 709670038 #h = 1060195455 #if(htag != h): # continue i += 1 print htag slct = halo_cat[step]["fof_halo_tag"] == htag if (np.sum(slct) == 0): continue fof_mass = halo_cat[step]["fof_halo_mass"][slct][0]
# plot_mstar05() # plot_mstar1() # plot_mstar0_pc() # plot_mstar05_pc() # plot_mstar1_pc() # plot_mstar0_QC() # plot_mstar05_QC() # plot_mstar1_QC() # plot_mstar0_OR() if plot_name == 'RMvSP': plot_mstar0_AQ_RMvSP() elif plot_name == 'miscentering': plot_mstar0_AQ_miscentering() plot_mstar0_OR_miscentering() elif plot_name == "OR": plot_mstar0_OR() elif plot_name == 'mass_def': plot_mass_def('0') elif plot_name == 'ORvLJ': plot_OR_LJ('0') elif plot_name == 'high_richness': plot_high_richness('0') else: raise KeyError("\"{}\" not a list plot".format(plot_name)) dtk.save_figs('figs/' + __file__ + '/' + plot_name + '/', '.pdf') plt.show() exit() a = [("D", [12.2, 12.1, 12.3]), ("M", [12.25, 12.12, 13.0]), ("D+M", [12.22, 12.17, 12.25])] plot(a)