Beispiel #1
0
def plot_param_distributions(p, nsamples=1000):
    from radd import theta
    pkeys = np.sort(list(p))
    nparams = pkeys.size
    p_dists = theta.random_inits(pkeys=pkeys, ninits=nsamples)
    clrs = colors.param_color_map()
    lbls = {pk: parameter_name(pk,True) for pk in pkeys}
    ncols = np.ceil(nparams/2.).astype(int)
    fig, axes = plt.subplots(2, ncols, figsize=(10,5))
    axes = axes.flatten()
    for i, pk in enumerate(pkeys):
        sns.distplot(p_dists[pk], label=lbls[pk], color=clrs[pk], ax=axes[i])
    for ax in axes:
        ax.legend(loc=0, fontsize=16)
    plt.tight_layout()
    sns.despine()
Beispiel #2
0
def plot_model_gof(gof_dict, aicwinner, models=None):
    sns.set(style='darkgrid', rc={'figure.facecolor':'white'}, font_scale=1.5)
    if models is None:
        models = np.sort(list(gof_dict))
    nmodels = len(models)
    f, ax = plt.subplots(1, figsize=(8,6))
    x = np.arange(1, nmodels*2, 2)
    clrs = colors.param_color_map()
    lbls = {m_id: parameter_name(m_id,True) for m_id in models}
    for i, m_id in enumerate(models):
        yaic, ybic = gof_dict[m_id][['AIC', 'BIC']]
        lbl = lbls[m_id]
        if m_id==aicwinner:
            lbl+='*'
        ax.bar(x[i]-.25, yaic, color=clrs[m_id], width=.5, align='center', edgecolor=clrs[m_id], label=lbl)
        ax.bar(x[i]+.25, ybic, color=clrs[m_id], alpha=.7, width=.5, align='center', edgecolor=clrs[m_id])
    vals = np.hstack(gof_dict.values()).astype(float)
    yylim = (vals.max()*.95, vals.min()*1.05)
    plt.setp(ax, xticks=x, ylim=yylim, xlim=(0, x[-1]+1), ylabel='IC')
    ax.set_xticklabels(['AIC | BIC']*nmodels, fontsize=18)
    ax.invert_yaxis()
    sns.despine()
    ax.legend(loc=0, fontsize=22)