Source code for gwinferno.postprocess.plot

import matplotlib.pyplot as plt
import numpy as np


[docs] def plot_pdf(x, pdf, label, color="blue", loglog=True, alpha=1.0): med = np.median(pdf, axis=0) low = np.percentile(pdf, 5, axis=0) high = np.percentile(pdf, 95, axis=0) if loglog: plt.loglog(x, med, lw=2, color=color, label=label, alpha=alpha) else: plt.plot(x, med, lw=2, color=color, label=label, alpha=alpha) plt.fill_between(x, low, high, color=color, alpha=0.1)
[docs] def plot_mass_pdfs(mpdfs, qpdfs, m1, q, names, label, result_dir, save=True, colors=["red", "blue", "green"]): plt.figure(figsize=(15, 5)) for i in range(len(mpdfs)): plot_pdf(m1, mpdfs[i], names[i], color=colors[i]) plt.ylim(1e-5, 1e0) plt.xlabel("m1") plt.legend() plt.xlim(m1[0], m1[-1]) plt.show() if save: plt.savefig(result_dir + f"/mass_pdf_{label}.png", dpi=100) plt.close() plt.figure(figsize=(10, 7)) for i in range(len(mpdfs)): plot_pdf(q, qpdfs[i], names[i], color=colors[i], loglog=False) plt.ylim(1e-2, 1e1) plt.yscale("log") plt.xlabel("q") plt.legend() plt.xlim(0, 1) plt.show() if save: plt.savefig(result_dir + f"/mass_ratio_pdf_{label}.png", dpi=100) plt.close()
[docs] def plot_spin_pdfs(a_pdfs, tilt_pdfs, aa, cc, names, label, result_dir, save=True, colors=["red", "blue", "green"], secondary=False): if secondary: comp = "2" else: comp = "1" plt.figure(figsize=(10, 7)) for i in range(len(a_pdfs)): plot_pdf(aa, a_pdfs[i], names[i], loglog=False, color=colors[i]) plt.ylim(0, 4) plt.xlabel(f"a{comp}") plt.legend() plt.xlim(0, 1) plt.show() if save: plt.savefig(result_dir + f"/spin_mag{comp}_pdf_{label}.png", dpi=100) plt.close() plt.figure(figsize=(10, 7)) for i in range(len(tilt_pdfs)): plot_pdf(cc, tilt_pdfs[i], names[i], loglog=False, color=colors[i]) plt.ylim(0, 1.2) plt.xlabel(rf"cos$\theta${comp}") plt.legend() plt.xlim(-1, 1) plt.show() if save: plt.savefig(result_dir + f"/cos_tilt{comp}_pdf_{label}.png", dpi=100) plt.close()
[docs] def plot_rate_of_z_pdfs(z_pdfs, z, label, result_dir, save=True): plt.figure(figsize=(10, 7)) plot_pdf(z, z_pdfs, "redshift") plt.xlabel("z") plt.ylabel("R(z)") plt.legend() plt.xlim(z[0], 1.5) plt.ylim(5, 1e3) plt.show() if save: plt.savefig(result_dir + f"/redshift_pdf_{label}.png", dpi=100) plt.close()