Estrai la degree centrality media giorno per giorno sulla partizione degli studenti
Qui verificherai se la degree centrality media su tutti i nodi è correlata con il numero di archi tracciati nel tempo. Potrebbe non esserci necessariamente una forte correlazione, e darai un’occhiata per vedere se è così.
Questo esercizio fa parte del corso
Analisi di reti intermedia in Python
Istruzioni dell'esercizio
- Istanzia un nuovo grafo chiamato
G_subcontenente un sottoinsieme di archi. - Aggiungi i nodi da
G, includendo i metadati dei nodi. - Aggiungi gli archi che soddisfano i criteri usando il metodo
.add_edges_from(). - Ottieni la proiezione degli studenti
G_student_subdaG_subusando la funzionenx.bipartite.projected_graph(). - Calcola la degree centrality della proiezione degli studenti usando
nx.degree_centrality()(non usare la versione bipartita). - Aggiungi la degree centrality media alla lista
mean_dcs. Assicurati di convertire primadc.values()in una lista. - Premi "Invia risposta" per visualizzare il grafico!
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
from datetime import datetime, timedelta
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Initialize a new list: mean_dcs
mean_dcs = []
curr_day = dayone
td = timedelta(days=2)
while curr_day < lastday:
if curr_day.day == 1:
print(curr_day)
# Instantiate a new graph containing a subset of edges: G_sub
G_sub = ____
# Add nodes from G
G_sub.____(____)
# Add in edges that fulfill the criteria
G_sub.____([(u, v, d) for u, v, d in G.edges(data=True) if d['date'] >= curr_day and d['date'] < curr_day + td])
# Get the students projection
G_student_sub = ____
# Compute the degree centrality of the students projection
dc = ____
# Append mean degree centrality to the list mean_dcs
mean_dcs.____(np.mean(____(dc.values())))
# Increment the time
curr_day += td
plt.plot(mean_dcs)
plt.xlabel('Time elapsed')
plt.ylabel('Degree centrality.')
plt.show()