IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci un oggetto timedelta di 2 giorni usando la funzione timedelta() e specificando un argomento per il parametro days.
  • 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: se d['date'] è >= di curr_day e < di curr_day + td.
    • Aggiungi il numero di archi (usa la funzione len() per calcolarlo) a n_posts.
    • Incrementa curr_day della differenza temporale td.
  • Crea un grafico di n_posts usando plt.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()  
Modifica ed esegui il codice