Kom igångKom igång gratis

Plotta antalet inlägg över tid

Låt oss repetera hur du kan plotta evolverande grafstatistik från grafdata. Först använder du grafdata för att kvantifiera antalet kanter som dyker upp inom ett tidsintervall på td dagar – i övningen nedan är det 2 dagar.

Datetimevariablerna dayone och lastday har redan definierats åt dig.

Den här övningen är en del av kursen

Nätverksanalys i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Definiera en tidsdelta på 2 dagar med funktionen timedelta() och ange ett argument för parametern days.
  • Inuti while-loopen:
    • Filtrera kanterna så att de ligger inom det glidande tidsfönstret. Använd en listomfattning där utdatauttrycket är (u, v, d), iterobjektet är G.edges(data=True) och det finns två villkor: om d['date'] är >= curr_day och < curr_day + td.
    • Lägg till antalet kanter (använd funktionen len() för att beräkna detta) i n_posts.
    • Öka curr_day med tidsdeltat td.
  • Skapa ett diagram över n_posts med plt.plot().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()  
Redigera och kör kod