# setup two panel plot if args.figsize: figsize = eval(args.figsize) else: figsize = None Y, X = imap.posmap() / np.pi * 180 fig = plt.figure(figsize=figsize) ############## # left panel # ############## ax = plt.subplot(121, projection=imap.wcs) opts = { 'cmap': 'magma', 'norm': colors.LogNorm(vmin=1e-2, vmax=3), } plotstyle.setup_axis(ax, nticks=[5, 5], fmt=None) P = np.sum(imap[1:]**2, axis=0)**0.5 im = ax.imshow(P, **opts) ax.set_xlabel('$l$') ax.set_ylabel('$b$') cax = plotstyle.add_colorbar_hpad(ax, pad="1%", hpad="50%") fig.colorbar(im, cax=cax, orientation='horizontal', shrink='50%').set_label(texify("P [MJy/sr]"), fontsize=12) cax.xaxis.set_label_position('top') cax.xaxis.set_ticks_position('top') ax.text(0.15, 1.03, texify("f090"), transform=ax.transAxes, fontsize=14) ax.tick_params(axis='x', colors='white', which='both', labelcolor='black') ax.tick_params(axis='y', colors='white', which='both', labelcolor='black') ax.set_aspect('equal') for side in ['left', 'right', 'top', 'bottom']: ax.spines[side].set_visible(True)
2, figsize=figsize, sharey=True, subplot_kw={'projection': imap.wcs}) plot_opts = { 'origin': 'lower', 'cmap': args.cmap, 'vmin': args.min, 'vmax': args.max, # 'extent': box2extent(box) / np.pi * 180 } # plot planck imap = load_map(filedb[args.freq]['planck'], box, fcode=args.freq) imap = process_map(imap) plotstyle.setup_axis(axes[0], nticks=[10, 5]) axes[0].imshow(imap, **plot_opts) imap = load_map(filedb[args.freq]['coadd'], box, fcode=args.freq) imap = process_map(imap) plotstyle.setup_axis(axes[1], nticks=[10, 5], yticks=False) im = axes[1].imshow(imap, **plot_opts) fig.subplots_adjust(right=0.9, wspace=0) cax = fig.add_axes([0.91, 0.2, 0.01, 0.6]) fig.colorbar(im, cax=cax).set_label(texify('Polarized intensity [MJy/sr]')) # turn-off axis if not args.axis: for ax in axes.flat: ax.axis('off') else: for ax in axes: for side in ['left', 'right', 'top', 'bottom']:
opts['norm'] = colors.LogNorm(vmin=10**0.5, vmax=10**2) label = texify("Total Intensity [MJy/sr]") if 'pmap' in args.back: fcode = args.back.split('_')[-1] if 'planck' in args.back: imap = load_map(filedb[fcode]['planck'], fcode=fcode, box=box) / 1e9 else: imap = load_map(filedb[fcode]['coadd'], fcode=fcode, box=box) / 1e9 if args.smooth: imap = enmap.smooth_gauss(args.smooth * u.fwhm * u.arcmin) back = np.sum(imap[1:]**2, axis=0)**0.5 label = texify("Polarized Intensity [MJy/sr]") # plotting if back is not None: ax = plt.subplot(111, projection=back.wcs) plotstyle.setup_axis(ax, nticks=[10, 5]) im_back = ax.imshow(back, **opts) ######### # front # ######### if 'bvec' in args.front: fcode = args.front.split('_')[-1] imap = load_map(filedb[fcode]['coadd'], fcode=fcode, box=box) ivar = load_ivar(filedb[fcode]['coadd_ivar'], fcode=fcode, box=box) if args.smooth2: imap = enmap.smooth_gauss(imap, args.smooth2 * u.fwhm * u.arcmin) ivar = enmap.smooth_gauss(ivar, args.smooth2 * u.fwhm * u.arcmin) s = sfactor(fcode, args.smooth2) else: s = 1 if args.dg2:
# initialize plot # load temp file to get wcs imap = load_map(filedb['f090']['coadd'], box, fcode='f090', IAU=args.IAU) spkw = {'projection': imap.wcs} if not args.sep_colorbar: fig, axes = plt.subplots(3,2,figsize=figsize, subplot_kw=spkw) else: fig, axes = plt.subplots(3,2,figsize=figsize, subplot_kw=spkw, gridspec_kw={'width_ratios': [0.942, 1]}) plot_opts = { 'origin': 'lower', 'cmap': args.cmap, # 'extent': box2extent(box)/np.pi*180 } # row 0: f090 plotstyle.setup_axis(axes[0,0], nticks=[10,5], xticks=False, yticks=True) plotstyle.setup_axis(axes[0,1], nticks=[10,5], xticks=False, yticks=False) plot_opts.update({'vmin': args.min_f090, 'vmax': args.max_f090}) imap = load_map(filedb['f090']['coadd'], box, fcode='f090', IAU=args.IAU) qmap = process_map(imap, 'Q') im_f090_q = axes[0,0].imshow(qmap, **plot_opts) umap = process_map(imap, 'U') im_f090_u = axes[0,1].imshow(umap, **plot_opts) # add colorbar if args.sep_colorbar: cb_f090 = plotstyle.add_colorbar(fig, axes[0,1], size="3%") fig.colorbar(im_f090_q, cax=cb_f090, orientation='vertical') cb_f090.yaxis.set_ticks([-0.15,0,0.15]); # row 1: f150 plotstyle.setup_axis(axes[1,0], nticks=[10,5], xticks=False, yticks=True)
# 2 panel plot fig, axes = plt.subplots(1, 2, figsize=figsize, subplot_kw={'projection': imap.wcs}) # fig = plt.figure(figsize=figsize) # left: total intensity opts = { 'vmin': args.tmin, 'vmax': args.tmax, 'cmap': args.tcmap, 'interpolation': 'nearest' } ax = plotstyle.setup_axis(axes[0], nticks=[5, 5], fmt=None) im = ax.imshow(imap[0], **opts) ax.coords[0].set_axislabel(r"$l$") ax.coords[1].set_axislabel(r"$b$") # by default, AxesDivider makes new axes class based on the parent axes, # for projection based axes this causes problem, so I had to force a # non wcs-based Axis here # cax = plotstyle.add_colorbar(fig, ax) # fig.colorbar(im, cax=cax).set_label(texify("Total intensity [MJy/sr]")) cax = plotstyle.add_colorbar_hpad(ax, hpad="50%") fig.colorbar(im, cax=cax, orientation='horizontal').set_label(texify("I [MJy/sr]")) cax.xaxis.set_ticks_position("top") cax.xaxis.set_label_position("top") ax.text(0.15, 1.03, texify("f090"), transform=ax.transAxes, fontsize=14) # right: polarization intensity
# plotstyle if freq == 'f090': norm = colors.LogNorm(vmin=10**-0.5, vmax=10**1.5) elif freq == 'f150': norm = colors.LogNorm(vmin=10**-0.5, vmax=10**1.5) else: norm = colors.LogNorm(vmin=10**0.5, vmax=10**2) # setup axes projection ax = axes[j] if j == 1: xticks, yticks = True, False else: xticks, yticks = True, True if j == 0: ax.set_ylabel('$b$') ax.set_xlabel('$l$') plotstyle.setup_axis(ax, fmt="d.d", xticks=xticks, yticks=yticks, nticks=[10, 5]) # load data if j == 0: use = 'act' if j == 1: use = 'coadd' imap = load_map(filedb[freq][use], box, fcode=freq) / 1e9 imap[0, imap[0] < 10**-0.5] = 10**-0.5 im = ax.imshow(imap[0], norm=norm, **plot_opts) cb = plotstyle.add_colorbar(fig, axes[1]) fig.colorbar(im, cax=cb).set_label(texify('Total Intensity [MJy/sr]'), fontsize=14) # setup labels: Planck, ACT+Planck axes[0].text(0.4, 1.05,
else: nrow, ncol = 1, len(freqs) # temp loading to get wcs imap = load_map(filedb['f090']['coadd'], fcode='f090', box=box) fig, axes = plt.subplots(nrow, ncol, figsize=figsize, subplot_kw={'projection': imap.wcs}) for i, freq in enumerate(freqs): norm = Normalize(vmin=mins[i], vmax=maxs[i]) # load map and ivar imap = load_map(filedb[freq]['coadd'], fcode=freq, box=box) ivar = load_ivar(filedb[freq]['coadd_ivar'], fcode=freq, box=box) if len(freqs) == 1: ax = axes else: ax = axes[i] if len(freqs) == 3: if i != 2: plotstyle.setup_axis(ax, nticks=[10,5], yticks=True, xticks=False) else: plotstyle.setup_axis(ax, nticks=[10,5], yticks=True, xticks=True) if args.axdir == 'out': ax.coords[0].set_ticks_position('b') ax.coords[1].set_ticks_position('l') else: plotstyle.setup_axis(ax, nticks=[5,5], fmt=None) # define underlay to plot under magnetic field orientation if args.underlay == 'T': back = imap[0]/1e9 label = 'Total Intensity [MJy/sr]' elif args.underlay == 'P': P = np.sum(imap[1:]**2,axis=0)**0.5/1e9 back = enmap.smooth_gauss(P, 1*u.arcmin*u.fwhm) label = 'Polarization Intensity [MJy/sr]'
imap_sm = enmap.smooth_gauss(imap, args.smooth*u.fwhm*u.arcmin) ivar_sm = enmap.smooth_gauss(ivar, args.smooth*u.fwhm*u.arcmin) s = sfactor(args.freq, args.smooth) else: imap_sm = imap ivar_sm = ivar s = 1 # initialize figure fig = plt.figure(figsize=figsize) ############## # left panel # ############## ax = plt.subplot(121, projection=imap.wcs) ax = plotstyle.setup_axis(ax, nticks=[5,5], fmt=None) opts = { 'cmap': 'planck_half', 'vmin': args.tmin, 'vmax': args.tmax, 'interpolation': 'nearest' } # background: total intensity im = ax.imshow(imap_sm[0], **opts) # cax = plotstyle.add_colorbar(fig, ax) # fig.colorbar(im, cax=cax).set_label(texify("Total intensity [MJy/sr]")) cax = plotstyle.add_colorbar_hpad(ax, pad="1%", hpad="50%") locator = ticker.MaxNLocator(nbins=4) fig.colorbar(im, cax=cax, orientation='horizontal', ticks=locator).set_label(texify("I [MJy/sr]"), fontsize=10) cax.xaxis.set_label_position('top') cax.xaxis.set_ticks_position('top')