fig, axs = plt.subplots(1, 2, figsize=cf.FIGSIZE_DIRECTED_MODELS,
                        facecolor=FACECOLOR, tight_layout=True)

# Plot clustering vs. degree scatter plots
for ctr, ax in enumerate(axs.flatten()):
    deg = nx.degree(Gs[ctr].to_undirected()).values()
    cc = nx.clustering(Gs[ctr].to_undirected()).values()
    
    ax.scatter(deg, cc, s=cf.MARKERSIZE, c=colors[ctr], lw=cf.LW)
    
# Set labels and limits
for ax in axs:
    ax.set_xlabel('Degree')
    ax.set_xlim(cf.XLIMITS)
    ax.set_ylim(cf.YLIMITS)
    ax.set_xticks([0,125,250])
axs[0].set_ylabel('Clustering\ncoefficient')

axs[0].set_title('Random\nattachment')
axs[1].set_title('Proximal\nattachment')

# Set all fontsizes and axis colors
for ax in axs.flatten():
    set_all_text_fontsizes(ax, cf.FONTSIZE)
    set_all_colors(ax, 'w')

plt.draw()

fig.savefig('/Users/rkp/Desktop/directed_clustering_vs_degree.png',
            transparent=True)
axs[3].scatter(BA_degree, BA_clustering, color=BA_COLOR)
axs[3].plot(x,np.exp(reg_BA[1])*x**reg_BA[0],'k',linestyle='--',lw=3)


# Set axis limits and ticks, and label subplots
for ax_idx, ax in enumerate(axs.flatten()):
    ax.set_xlim(0, DEG_MAX)
    ax.set_ylim(0, 1)
    ax.set_xticks(DEG_TICKS)
    ax.set_yticks(CC_TICKS)
    ax.text(.08, .87, labels[ax_idx], color='k', fontsize=FONT_SIZE,
            fontweight='bold', transform=ax.transAxes)

    ax.set_xlabel('Degree')
    set_all_text_fontsizes(ax, FONT_SIZE)
    set_all_colors(ax, 'k')

    # Set titles
    ax.set_title(graph_names[ax_idx], fontsize=FONT_SIZE)

    # Hide x ticklabels in top row & y ticklabels in right columns

    if ax_idx == 0:
        ax.set_ylabel('Clustering\ncoefficient')
        ax.text(0.5, 0.85, r'$\mathrm{R^{2}}$ = %.2f' % r_squared_vals[ax_idx],
                color='k', fontsize=FONT_SIZE - 2, transform=ax.transAxes)

    else:

        ax.text(0.725, 0.85, '%0.2f' % r_squared_vals[ax_idx],
                color='k', fontsize=FONT_SIZE - 2, transform=ax.transAxes)
Пример #3
0
ax0.set_xlabel('Indegree')
ax0.set_ylabel('Outdegree')
ax0_histTop.set_title('In- vs. Outdegree', fontsize=FONTSIZE + 2,
                      va='bottom')
ax0.set_xlim(*cf.IN_OUT_SCATTER_XLIM)
ax0.set_ylim(*cf.IN_OUT_SCATTER_YLIM)
ax0.set_aspect('auto')

ax0_histTop.set_ylabel('# nodes')
ax0_histRight.set_xlabel('# nodes')
##########################################################################
# Plot percent_indeg vs. degree (RIGHT SIDE)
ax1.scatter(deg, percent_indeg, s=cf.MARKERSIZE, lw=0, c=MARKERCOLOR)
ax1.set_xlabel('Total degree (in + out)')
ax1.set_ylabel('Proportion in-degree')
ax1.xaxis.set_major_locator(plt.MaxNLocator(4))
ax1.set_yticks(np.arange(0, 1.1, .2))
ax1.set_title('Proportion of Edges that are Incoming\nvs. Degree',
              fontsize=cf.FONTSIZE + 2, va='bottom')
ax1.set_ylim([0., 1.05])

##########################################################################
# Set background color and text size for all spines/ticks
for temp_ax in [ax0, ax0_histRight, ax0_histTop, ax1]:
    set_all_text_fontsizes(temp_ax, FONTSIZE)
    set_all_colors(temp_ax, cf.LABELCOLOR)
    #temp_ax.patch.set_facecolor(FACECOLOR)  # Set color of plot area
    temp_ax.tick_params(width=cf.TICKSIZE)

#fig.savefig('/Users/richpang/Desktop/brain_in_out.png', transparent=True)
plt.show()
# Make clustering vs. degree plots w/ different gammas
for gamma_idx, gamma in enumerate(GAMMAS):
    axs[gamma_idx].scatter(model_degrees[gamma_idx],
                           model_clusterings[gamma_idx],
                           color=MODEL_COLOR[gamma_idx],
                           alpha=0.5)

# Set axis limits and ticks, and label subplots
for ax_ind, (ax, label) in enumerate(zip(axs, ax_labels)):
    ax.set_xlim(0, DEG_MAX)
    ax.set_ylim(0, 1)
    ax.set_xticks(DEG_TICKS)
    ax.set_yticks(CC_TICKS)

    ax.text(20, .87, label, color=TEXTCOLOR, fontsize=FONT_SIZE,
            fontweight='bold')

    set_all_text_fontsizes(ax, FONT_SIZE)
    set_all_colors(ax, TEXTCOLOR)

    # Set titles/labels
    ax.set_xlabel('Degree')
    ax.set_title(r'$\gamma$ = %.2f' % GAMMAS[ax_ind], fontsize=FONT_SIZE)

axs[0].set_ylabel('Clustering\ncoefficient')

#fig.subplots_adjust(wspace=0.18)

plt.plot()
Пример #5
0
                BINCS_NODAL_EFFICIENCY[counts_nodal_efficiency_mean[key].argmax()],
                counts_nodal_efficiency_mean[key].max())
            )

        ax.set_xlim(X_LIM_EFFICIENCY)
        ax.set_ylim(Y_LIM_EFFICIENCY)

        ax.set_xlabel('Nodal efficiency')
        ax.set_ylabel('Number of nodes')

lines = [h_line[0] for h_line in lines_temp] + [hist_connectome[-1][0]]
axs[1].legend(lines, LABELS + ['Connectome'], fontsize=FONT_SIZE)

texts = ('a', 'b')
for ax, text in zip(axs, texts):
    change_settings.set_all_colors(ax, AX_COLOR)
    change_settings.set_all_text_fontsizes(ax, FONT_SIZE)
    ax.text(0.05, 0.95, text, fontsize=20, fontweight='bold',
            transform=ax.transAxes,  ha='center', va='center')

# add inset with power-law fit bar plot
ax_inset = fig.add_axes(INSET_COORDINATES)
gamma_means = [power_law_fits[key].mean() for key in PLOT_KEYS + ['brain']]
gamma_stds = [power_law_fits[key].std() for key in PLOT_KEYS + ['brain']]
gamma_median_r_squareds = [np.median(fits_r_squared[key])
                           for key in PLOT_KEYS + ['brain']]
colors = [COLORS[key] for key in PLOT_KEYS]

bar_width = .8
x_pos = np.arange(len(PLOT_KEYS)) - bar_width/2
Пример #6
0
    right_main_ax.set_xlabel('Total degree (in + out)')
    right_main_ax.set_ylabel('Proportion in-degree')
    right_main_ax.text(1.,
                       1.2,
                       labels[1],
                       fontsize=FONTSIZE + 2,
                       fontweight='bold',
                       transform=right_main_ax.transAxes,
                       ha='right')
    right_main_ax.set_xlim([0., 150.])
    right_main_ax.set_ylim([-0.025, 1.025])
    right_main_ax.legend(loc=(-0.35, 1.12), prop={'size': 12})

    for temp_ax in [
            left_main_ax, right_main_ax, top_margin_ax, right_margin_ax
    ]:
        set_all_text_fontsizes(temp_ax, FONTSIZE)
        set_all_colors(temp_ax, cf.LABELCOLOR)
        temp_ax.tick_params(width=1.)

    fig.subplots_adjust(left=0.125, top=0.925, right=0.95, bottom=0.225)

    fig.savefig('fig5sf5{}{}.pdf'.format(*labels), dpi=300)
    fig.savefig('fig5sf5{}{}.png'.format(*labels), dpi=300)

    plt.show(block=False)

    r, p = stats.spearmanr(indeg_sg_total, outdeg_sg_total)
    print('r = {}'.format(r))
    print('p = {}'.format(p))
Пример #7
0
                      s=MARKERSIZE,
                      lw=0,
                      c=config.COLORS['ta'],
                      alpha=ALPHA,
                      label='TA only')
right_main_ax.xaxis.set_major_locator(plt.MaxNLocator(4))
right_main_ax.set_yticks(np.arange(0, 1.1, .25))
right_main_ax.set_xticks(np.arange(0, 151, 50))
right_main_ax.set_xlabel('Total degree (in + out)')
right_main_ax.set_ylabel('Proportion in-degree')
right_main_ax.text(1.,
                   1.2,
                   'b',
                   fontsize=FONTSIZE + 2,
                   fontweight='bold',
                   transform=right_main_ax.transAxes,
                   ha='right')
right_main_ax.set_xlim([0., 150.])
right_main_ax.set_ylim([-0.025, 1.025])
right_main_ax.legend(loc=(-0.35, 1.12), prop={'size': 12})

for temp_ax in [left_main_ax, right_main_ax, top_margin_ax, right_margin_ax]:
    set_all_text_fontsizes(temp_ax, FONTSIZE)
    set_all_colors(temp_ax, 'k')
    temp_ax.tick_params(width=1.)

fig.subplots_adjust(left=0.125, top=0.925, right=0.95, bottom=0.225)

fig.savefig('fig5fs2.pdf', dpi=300)
fig.savefig('fig5fs2.png', dpi=300)
Пример #8
0
    ax.plot(x, np.exp(reg[ax_i][1]) * x ** reg[ax_i][0], 'k', linestyle='--',
            lw=2)

    # Setting other parameters
    ax.set_xlim(0, DEG_MAX)
    ax.set_ylim(0, 1)
    ax.set_aspect(DEG_MAX / 1.)
    ax.set_xticks(DEG_TICKS)
    ax.set_yticks(CC_TICKS)

    ax.set_title(graph_names[ax_i], fontsize=FONT_SIZE)
    ax.text(.1, .87, labels[ax_i], fontsize=FONT_SIZE-1, fontweight='bold',
            transform=ax.transAxes)
    ax.set_xlabel('Degree')
    set_all_text_fontsizes(ax, FONT_SIZE)
    set_all_colors(ax, 'k')

    # Hide x ticklabels in top row & y ticklabels in right columns
    if ax_i == 0:
        ax.set_ylabel('Clustering\ncoefficient')
        ax.text(0.4, 0.85, r'R$^2$ = %.2f' % r_squared_vals[ax_i],
                fontsize=FONT_SIZE - 2, transform=ax.transAxes)
    else:
        ax.text(0.725, 0.85, '%0.2f' % r_squared_vals[ax_i],
                fontsize=FONT_SIZE - 2, transform=ax.transAxes)
        ax.set_yticklabels('')

fig.set_tight_layout({'pad': 1.02, 'w_pad': 0.4})

fig.savefig('fig1_cdef.png', dpi=300)
fig.savefig('fig1_cdef.pdf', dpi=300)
Пример #9
0
top_margin_ax.set_ylabel('$P(K_\mathrm{in}=k)$', va='baseline')
right_margin_ax.set_xlabel('$P(K_\mathrm{out}=k)$', va='top')

# Right main plot (proportion in vs total degree)
right_main_ax.scatter(deg_growth, percent_indeg_growth, s=MARKERSIZE, lw=0,
                      c=config.COLORS['sg'], alpha=ALPHA,
                      label='SG only', zorder=3)
right_main_ax.scatter(deg_attachment, percent_indeg_attachment,
                      s=MARKERSIZE, lw=0, c=config.COLORS['ta'],
                      alpha=ALPHA, label='TA only')
right_main_ax.xaxis.set_major_locator(plt.MaxNLocator(4))
right_main_ax.set_yticks(np.arange(0, 1.1, .25))
right_main_ax.set_xticks(np.arange(0, 151, 50))
right_main_ax.set_xlabel('Total degree (in + out)')
right_main_ax.set_ylabel('Proportion in-degree')
right_main_ax.text(1., 1.2, 'b', fontsize=FONTSIZE + 2, fontweight='bold',
                   transform=right_main_ax.transAxes, ha='right')
right_main_ax.set_xlim([0., 150.])
right_main_ax.set_ylim([-0.025, 1.025])
right_main_ax.legend(loc=(-0.35, 1.12), prop={'size': 12})

for temp_ax in [left_main_ax, right_main_ax, top_margin_ax, right_margin_ax]:
    set_all_text_fontsizes(temp_ax, FONTSIZE)
    set_all_colors(temp_ax, 'k')
    temp_ax.tick_params(width=1.)

fig.subplots_adjust(left=0.125, top=0.925, right=0.95, bottom=0.225)

fig.savefig('fig5fs2.pdf', dpi=300)
fig.savefig('fig5fs2.png', dpi=300)
Пример #10
0
                key, BINCS_NODAL_EFFICIENCY[
                    counts_nodal_efficiency_mean[key].argmax()],
                counts_nodal_efficiency_mean[key].max()))

        ax.set_xlim(X_LIM_EFFICIENCY)
        ax.set_ylim(Y_LIM_EFFICIENCY)

        ax.set_xlabel('Nodal efficiency')
        ax.set_ylabel('Number of nodes')

lines = [h_line[0] for h_line in lines_temp] + [hist_connectome[-1][0]]
axs[1].legend(lines, LABELS + ['Connectome'], fontsize=FONT_SIZE)

texts = ('a', 'b')
for ax, text in zip(axs, texts):
    change_settings.set_all_colors(ax, AX_COLOR)
    change_settings.set_all_text_fontsizes(ax, FONT_SIZE)
    ax.text(0.05,
            0.95,
            text,
            fontsize=20,
            fontweight='bold',
            transform=ax.transAxes,
            ha='center',
            va='center')

# add inset with power-law fit bar plot
ax_inset = fig.add_axes(INSET_COORDINATES)
gamma_means = [power_law_fits[key].mean() for key in PLOT_KEYS + ['brain']]
gamma_stds = [power_law_fits[key].std() for key in PLOT_KEYS + ['brain']]
gamma_median_r_squareds = [