Fördelning av graders centralitet för användarnoder
I den här övningen och nästa ska du göra en kort repetition av material från föregående kurs. Din uppgift är att rita fördelningarna av graders centralitet för varje nodpartition i den bipartita versionen av GitHub-samarbetsnätverket. Här gör du det för partitionen 'users'. I nästa övning gör du det för partitionen 'projects'.
Funktionen get_nodes_from_partition() som du skrev tidigare är redan inläst. Som en påminnelse: "graders centralitet" är ett mått på hur viktig en nod är, och "fördelningen av graders centralitet" är listan med centralitetspoäng för alla noder i grafen. För några övningar sedan, när du skapade circos-plotten, beräknade vi graders centralitet åt dig. Nu får du öva på att göra det själv!
Den här övningen är en del av kursen
Nätverksanalys i Python – fortsättningskurs
Övningsinstruktioner
- Importera
matplotlib.pyplotsomplt. - Använd din funktion
get_nodes_from_partition()från föregående övning för att skapa en lista kalladuser_nodessom motsvarar noderna'users'iG. - Beräkna graders centralitet för varje nod i
Gmed funktionennx.degree_centrality(). Spara resultatet somdcs. - Använd en listomfattning för att beräkna graders centralitet för varje nod i
user_nodes. Spara resultatet somuser_dcs.- Kom ihåg att
dcsär en ordbok där nycklarna är noderna. De relevanta noderna finns iuser_nodes. Hur kan du använda den informationen för att hämta centralitetsvärdena för användarnoderna? Användnsom iteratorvariabel.
- Kom ihåg att
- Rita ett histogram över gradsfördelningen för användare med
plt.hist()ochuser_dcs.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()