def plot_z_histogram(cfg, var, title, fname): """For a variable, plot correlation in the last dimension.""" size = var.shape[-1] + 1 var = var.reshape((-1, var.shape[-1])) x = var.cpu().numpy() fig, ax = plt.subplots(figsize=(12, 10)) cmap = sns.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=False) cmap = ListedColormap(cmap.as_hex()) linspace = np.linspace(0, var.shape[-1], var.shape[-1], dtype=int) ax.hist2d(x[:, 0], x[:, 1], bins=(linspace, linspace), cmap=cmap) ticks = list(range(1, size + 1)) ax.set_xticks(ticks) ax.set_yticks(ticks) ax.set(title=title) plt.savefig(cfg.train_dir / fname, bbox_inches="tight") plt.close()
def plot_q_nu_hist(cfg, device, q_nu, title, fname, linspace, axes_transform=lambda x: x): with torch.no_grad(): nu, _ = q_nu(num_samples=cfg.num_eps_samples_plot) np_nu = nu.cpu().numpy() fig, ax = plt.subplots(figsize=(12, 10)) cmap = sns.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=False) cmap = ListedColormap(cmap.as_hex()) x = axes_transform(np_nu) linspace = axes_transform(linspace) ax.hist2d(x[:, 0], x[:, 1], bins=(linspace, linspace), cmap=cmap) ax.set(title=title, xlabel='dimension 1', ylabel='dimension 2') plt.savefig(cfg.train_dir / fname, bbox_inches="tight") plt.close()
def seaborn_palette(feat_type='', fig_type='diff'): """ Get colors for difference cases. Parameters ---------- feat_type fig_type Returns ------- """ # 1 bright used for basic # Set the palette to the "pastel" default palette: sns.set_palette("bright") # sns.palplot(sns.color_palette()); # plt.show() colors_bright = sns.color_palette() # muted for FFT sns.set_palette("muted") colors_muted = sns.color_palette() # dark for feature + size sns.set_palette("dark") colors_dark = sns.color_palette() # deep for feature + header sns.set_palette("deep") # for feature+header colors_deep = sns.color_palette() # colorblind for diff sns.set_palette("colorblind") # for feature+header colors_colorblind = sns.color_palette() colors_bright = ListedColormap(colors_bright.as_hex()).colors colors_dark = ListedColormap(colors_dark.as_hex()).colors colors_muted = ListedColormap(colors_muted.as_hex()).colors colors_deep = ListedColormap(colors_deep.as_hex()).colors colors_colorblind = ListedColormap(colors_colorblind.as_hex()).colors feat_type = feat_type.upper() fig_type = fig_type.upper() C_STATS = 4 # purple C_IAT = 2 # green C_SIZE = 0 # blue C_SAMP_NUM = 3 # red C_SAMP_SIZE = 5 # brown raw_feat = { 'STATS': colors_bright[C_STATS], 'IAT': colors_bright[C_IAT], 'SIZE': colors_bright[C_SIZE], 'SAMP-NUM': colors_bright[C_SAMP_NUM], 'SAMP-SIZE': colors_bright[C_SAMP_SIZE] } if feat_type == "basic_representation".upper(): if fig_type == 'raw'.upper(): colors = { 'STATS': raw_feat['STATS'], 'IAT': raw_feat['IAT'], 'IAT-FFT': colors_dark[C_IAT], 'SAMP-NUM': raw_feat['SAMP-NUM'], 'SAMP-NUM-FFT': colors_dark[C_SAMP_NUM] } # red elif fig_type == 'diff'.upper(): # 'IAT' vs. IAT-FFT colors = { 'IAT vs. IAT-FFT': raw_feat['IAT'], # green 'SAMP-NUM vs. SAMP-NUM-FFT': raw_feat['SAMP-NUM'], 'SAMP-SIZE vs. SAMP-SIZE-FFT': raw_feat['SAMP-SIZE'] } else: msg = f'{feat_type} is not implemented yet.' raise ValueError(msg) elif feat_type == "effect_size".upper(): if fig_type == 'raw'.upper(): colors = { 'STATS': raw_feat['STATS'], 'SIZE': raw_feat['SIZE'], 'IAT': raw_feat['IAT'], 'IAT+SIZE': colors_dark[C_SIZE], 'SAMP-NUM': raw_feat['SAMP-NUM'], 'SAMP-SIZE': raw_feat['SAMP-SIZE'] } # red elif fig_type == 'diff'.upper(): colors = { 'IAT vs. IAT+SIZE': raw_feat['IAT'], # green 'SAMP-NUM vs. SAMP-SIZE': raw_feat['SAMP-SIZE'] } # red else: msg = f'{feat_type} is not implemented yet.' raise ValueError(msg) elif feat_type == "effect_header".upper(): if fig_type == 'raw'.upper(): colors = { 'STATS (wo. header)': raw_feat['STATS'], 'STATS (w. header)': colors_dark[C_STATS], 'IAT+SIZE (wo. header)': colors_dark[C_SIZE], 'IAT+SIZE (w. header)': colors_deep[C_SIZE], # green 'SAMP-SIZE (wo. header)': raw_feat['SAMP-SIZE'], 'SAMP-SIZE (w. header)': colors_deep[C_SAMP_SIZE] } # red elif fig_type == 'diff'.upper(): colors = { 'STATS (wo. header) vs. STATS (w. header)': raw_feat['STATS'], 'IAT+SIZE (wo. header) vs. IAT+SIZE (w. header)': raw_feat['IAT'], # green 'SAMP-SIZE (wo. header) vs. SAMP-SIZE (w. header)': raw_feat['SAMP-SIZE'] } # red else: msg = f'{feat_type} is not implemented yet.' raise ValueError(msg) else: msg = f'{feat_type} is not implemented yet.' raise ValueError(msg) return colors