Distribuția centralității de grad a nodurilor utilizator
În acest exercițiu și în cel următor, vei face o recapitulare finală a materialului din cursul anterior. Sarcina ta este să reprezinți grafic distribuțiile centralității de grad pentru fiecare partiție de noduri din versiunea bipartită a rețelei de colaborare GitHub. Aici vei face acest lucru pentru partiția 'users'. În exercițiul următor, vei repeta operațiunea pentru partiția 'projects'.
Funcția pe care ai scris-o anterior, get_nodes_from_partition(), a fost deja încărcată. Ca să-ți reamintești, „centralitatea de grad" este o măsură a importanței unui nod, iar „distribuția centralității de grad" reprezintă lista scorurilor de centralitate de grad pentru toate nodurile din graf. Cu câteva exerciții în urmă, când ai creat graficul circos, am calculat centralitățile de grad pentru tine. Acum vei exersa să faci acest lucru singur!
Acest exercițiu face parte din cursul
Analiză intermediară a rețelelor în Python
Instrucțiuni pentru exercițiu
- Importă
matplotlib.pyplotcaplt. - Folosește funcția
get_nodes_from_partition()din exercițiul anterior pentru a obține o listă numităuser_nodes, corespunzătoare nodurilor'users'dinG. - Folosind funcția
nx.degree_centrality(), calculează centralitățile de grad pentru fiecare nod dinG. Stochează rezultatul în variabiladcs. - Folosește o comprehensiune de listă pentru a calcula centralitățile de grad pentru fiecare nod din
user_nodes. Stochează rezultatul în variabilauser_dcs.- Reține că
dcseste un dicționar în care cheile sunt nodurile. Nodurile relevante se află înuser_nodes. Cum poți folosi această informație pentru a obține centralitățile de grad ale nodurilor utilizator? Foloseștenca variabilă iterator.
- Reține că
- Reprezintă o histogramă a distribuției de grad a utilizatorilor, folosind
plt.hist()șiuser_dcs.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Import matplotlib
____
# Get the 'users' nodes: user_nodes
user_nodes = ____
# Compute the degree centralities: dcs
dcs = ____
# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]
# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()