Verdeling van graad-centraliteit van gebruikersknooppunten
In deze en de volgende oefening maak je een laatste herhaling van stof uit de vorige cursus. Je taak is om de verdelingen van graad-centraliteit te plotten voor elke knooppartitie in de bipartiete versie van het GitHub-samenwerkingsnetwerk. Hier doe je dit voor de 'users'-partitie. In de volgende oefening doe je dit voor de 'projects'-partitie.
De functie die je eerder schreef, get_nodes_from_partition(), is voor je geladen. Even ter herinnering: de "graad-centraliteit" is een maat voor de belangrijkheid van een knoop, en de "verdeling van graad-centraliteit" is de lijst met graad-centraliteitsscores voor alle knopen in de graaf. Een paar oefeningen geleden, toen je de circos-plot maakte, hebben we de graad-centraliteiten voor je berekend. Nu ga je oefenen om dit zelf te doen!
Deze oefening maakt deel uit van de cursus
Gemiddelde netwerkanalyse in Python
Oefeninstructies
- Importeer
matplotlib.pyplotalsplt. - Gebruik je functie
get_nodes_from_partition()uit de vorige oefening om een lijstuser_nodesop te halen die overeenkomt met de'users'-knooppunten vanG. - Gebruik de functie
nx.degree_centrality()om de graad-centraliteiten voor elke knoop inGte berekenen. Sla het resultaat op alsdcs. - Gebruik een list comprehension om de graad-centraliteiten te berekenen voor elke knoop in
user_nodes. Sla het resultaat op alsuser_dcs.- Onthoud:
dcsis een dictionary waarin de sleutels de knopen zijn. De relevante knopen staan hier inuser_nodes. Hoe kun je deze info gebruiken om de graad-centraliteiten van de gebruikersknooppunten te verkrijgen? Gebruiknals je iteratorvariabele.
- Onthoud:
- Plot een histogram van de graadverdeling van gebruikers met
plt.hist()enuser_dcs.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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()