Grafica il numero di post pubblicati nel tempo
Ripassiamo come puoi tracciare l’evoluzione di statistiche del grafo a partire dai dati del grafo. Per prima cosa, userai i dati del grafo per quantificare il numero di archi che compaiono all'interno di una finestra temporale a blocchi di td giorni, che nell’esercizio qui sotto è di 2 giorni.
Le variabili datetime dayone e lastday sono già state fornite.
Questo esercizio fa parte del corso
Analisi di reti intermedia in Python
Istruzioni dell'esercizio
- Definisci un oggetto timedelta di 2 giorni usando la funzione
timedelta()e specificando un argomento per il parametrodays. - All'interno del ciclo
while:- Filtra gli archi in modo che ricadano nella finestra temporale mobile. Usa una list comprehension in cui l’espressione di output è
(u, v, d), l’iterabile èG.edges(data=True)e ci sono due condizioni: sed['date']è>=dicurr_daye<dicurr_day+td. - Aggiungi il numero di archi (usa la funzione
len()per calcolarlo) an_posts. - Incrementa
curr_daydella differenza temporaletd.
- Filtra gli archi in modo che ricadano nella finestra temporale mobile. Usa una list comprehension in cui l’espressione di output è
- Crea un grafico di
n_postsusandoplt.plot().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import necessary modules
from datetime import timedelta
import matplotlib.pyplot as plt
# Define current day and timedelta of 2 days
curr_day = dayone
td = ____
# Initialize an empty list of posts by day
n_posts = []
while curr_day < lastday:
if curr_day.day == 1:
print(curr_day)
# Filter edges such that they are within the sliding time window: edges
edges = [(____, ____, ____) for u, v, d in ____ if d['date'] >= ____ and d['date'] < ____ + ____]
# Append number of edges to the n_posts list
____
# Increment the curr_day by the time delta
____ += ____
# Create the plot
plt.plot(____)
plt.xlabel('Days elapsed')
plt.ylabel('Number of posts')
plt.show()