Rozkład centralności stopnia węzłów użytkowników
W tym ćwiczeniu i kolejnym przypomnisz sobie materiał z poprzedniego kursu. Twoim zadaniem jest wyrysowanie rozkładów centralności stopnia dla każdej partycji węzłów w dwudzielnej wersji sieci współpracy GitHub. Tutaj zrobisz to dla partycji 'users'. W następnym ćwiczeniu zajmiesz się partycją 'projects'.
Funkcja, którą wcześniej napisano, get_nodes_from_partition(), jest już dla ciebie wczytana. Przypomnijmy: „centralność stopnia" to miara ważności węzła, a „rozkład centralności stopnia" to lista wyników centralności stopnia dla wszystkich węzłów w grafie. Kilka ćwiczeń temu, gdy tworzyłeś wykres circos, centralności stopnia zostały obliczone za ciebie. Teraz przećwiczysz to samodzielnie!
To ćwiczenie jest częścią kursu
Analiza sieci w Pythonie – poziom średniozaawansowany
Instrukcje do ćwiczenia
- Zaimportuj
matplotlib.pyplotjakoplt. - Użyj swojej funkcji
get_nodes_from_partition()z poprzedniego ćwiczenia, aby uzyskać listęuser_nodesodpowiadającą węzłom'users'w grafieG. - Korzystając z funkcji
nx.degree_centrality(), oblicz centralności stopnia dla każdego węzła wG. Wynik zapisz jakodcs. - Użyj składni listowej, aby obliczyć centralności stopnia dla każdego węzła w
user_nodes. Wynik zapisz jakouser_dcs.- Pamiętaj, że
dcsto słownik, w którym klucze stanowią węzły. Interesujące nas węzły są zawarte wuser_nodes. Jak możesz wykorzystać tę informację, aby uzyskać centralności stopnia węzłów użytkowników? Użyjnjako zmiennej iteracyjnej.
- Pamiętaj, że
- Wyrysuj histogram rozkładu stopni użytkowników, używając
plt.hist()iuser_dcs.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()