Distribuzione della degree centrality dei nodi utente
In questo esercizio e nel prossimo, farai un ripasso finale del materiale del corso precedente. Il tuo compito è tracciare le distribuzioni di degree centrality per ciascuna partizione di nodi nella versione bipartita della rete di collaborazione di GitHub. Qui, lo farai per la partizione 'users'. Nel prossimo esercizio, lo farai per la partizione 'projects'.
La funzione che hai scritto prima, get_nodes_from_partition(), è già stata caricata per te. Giusto per ricordare: la "degree centrality" è una misura dell'importanza di un nodo, e la "distribuzione della degree centrality" è l'elenco dei punteggi di degree centrality per tutti i nodi del grafo. Qualche esercizio fa, quando hai creato il circos plot, abbiamo calcolato noi le degree centralities. Ora farai pratica a calcolarle da solo!
Questo esercizio fa parte del corso
Analisi di reti intermedia in Python
Istruzioni dell'esercizio
- Importa
matplotlib.pyplotcomeplt. - Usa la tua funzione
get_nodes_from_partition()dall'esercizio precedente per ottenere una lista chiamatauser_nodescorrispondente ai nodi'users'diG. - Usando la funzione
nx.degree_centrality(), calcola le degree centralities per ogni nodo inG. Salva il risultato comedcs. - Usa una list comprehension per calcolare le degree centralities per ogni nodo in
user_nodes. Salva il risultato comeuser_dcs.- Ricorda:
dcsè un dizionario, in cui le chiavi sono i nodi. I nodi rilevanti qui sono contenuti inuser_nodes. Come puoi usare questa informazione per ottenere le degree centralities dei nodi utente? Usancome variabile iteratore.
- Ricorda:
- Traccia un istogramma della distribuzione dei gradi degli utenti usando
plt.hist()euser_dcs.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()