Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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