def plot(self, ax, power=None, colormap="jet"):
"""
Plot the 2D power spectrum with EoR window marked on.
"""
x = self.k_perp
y = self.k_los
y_wedge = self.wedge_edge()
if power is None:
title = "EoR Window (fov=%.1f[deg], e=%.1f)" % (self.fov, self.e)
else:
title = (r"fov=%.1f[deg], e=%.1f, power=%.4e$\pm$%.4e[%s]" %
(self.fov, self.e, power[0], power[1], self.power_unit))
# data
mappable = ax.pcolormesh(x[1:], y[1:],
np.log10(self.ps2d[1:, 1:]),
cmap=colormap)
# EoR window
ax.axvline(x=self.k_perp_min, color="black",
linewidth=2, linestyle="--")
ax.axvline(x=self.k_perp_max, color="black",
linewidth=2, linestyle="--")
ax.axhline(y=self.k_los_min, color="black",
linewidth=2, linestyle="--")
ax.axhline(y=self.k_los_max, color="black",
linewidth=2, linestyle="--")
ax.plot(x, y_wedge, color="black", linewidth=2, linestyle="--")
#
ax.set(xscale="log", yscale="log",
xlim=(x[1], x[-1]), ylim=(y[1], y[-1]),
xlabel=r"$k_{\perp}$ [Mpc$^{-1}$]",
ylabel=r"$k_{||}$ [Mpc$^{-1}$]",
title=title)
cb = ax.figure.colorbar(mappable, ax=ax, pad=0.01, aspect=30)
cb.ax.set_xlabel("[%s]" % self.unit)
return ax
评论列表
文章目录