Verteilung der Degree-Centrality der Nutzer-Knoten
In dieser und der nächsten Übung wiederholst du zum Abschluss Stoff aus dem vorherigen Kurs. Deine Aufgabe ist es, die Verteilungen der Degree-Centrality für jede Knotenpartition in der bipartiten Version des GitHub-Kollaborationsnetzwerks zu plotten. Hier machst du das für die 'users'-Partition. In der nächsten Übung machst du es für die 'projects'-Partition.
Die Funktion, die du zuvor geschrieben hast, get_nodes_from_partition(), wurde für dich geladen. Zur Erinnerung: Die „Degree-Centrality“ ist ein Maß für die Wichtigkeit eines Knotens, und die „Degree-Centrality-Verteilung“ ist die Liste der Degree-Centrality-Werte für alle Knoten im Graphen. Vor ein paar Übungen, als du das Circos-Plot erstellt hast, haben wir die Degree-Centrality bereits für dich berechnet. Jetzt übst du, das selbst zu tun!
Diese Übung ist Teil des Kurses
Fortgeschrittene Netzwerkanalyse in Python
Anleitung zur Übung
- Importiere
matplotlib.pyplotalsplt. - Verwende deine Funktion
get_nodes_from_partition()aus der vorherigen Übung, um eine Liste namensuser_nodeszu erhalten, die den'users'-Knoten vonGentspricht. - Berechne mit der Funktion
nx.degree_centrality()die Degree-Centrality für jeden Knoten inG. Speichere das Ergebnis alsdcs. - Verwende eine List-Comprehension, um die Degree-Centrality für jeden Knoten in
user_nodeszu berechnen. Speichere das Ergebnis alsuser_dcs.- Denk daran:
dcsist ein Dictionary, dessen Schlüssel die Knoten sind. Die relevanten Knoten hier sind inuser_nodesenthalten. Wie kannst du diese Information nutzen, um die Degree-Centrality der Nutzer-Knoten zu erhalten? Verwendenals deine Iterationsvariable.
- Denk daran:
- Plotte ein Histogramm der Degree-Verteilung der Nutzer mit
plt.hist()unduser_dcs.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()