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)
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()
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
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))
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)
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)
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)
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 = [