Začněte nyníZačněte zdarma

Vykresli počet příspěvků v čase

Pojďme si zopakovat, jak vykreslit vyvíjející se statistiky grafu z dat sítě. Nejprve použiješ data grafu k vyčíslení počtu hran, které se objeví v časovém okně td dnů – v níže uvedeném cvičení jsou to 2 dny.

Proměnné typu datetime dayone a lastday jsou již k dispozici.

Toto cvičení je součástí kurzu

Intermediate Network Analysis in Python

Zobrazit kurz

Pokyny k cvičení

  • Definuj časový rozdíl 2 dnů pomocí funkce timedelta() se zadáním hodnoty parametru days.
  • Uvnitř smyčky while:
    • Filtruj hrany tak, aby spadaly do posuvného časového okna. Použij k tomu generátor seznamu, kde výstupní výraz je (u, v, d), iterovatelný objekt je G.edges(data=True) a platí dvě podmínky: d['date'] je >= curr_day a zároveň < než curr_day + td.
    • Přidej počet hran (pro výpočet použij funkci len()) do n_posts.
    • Zvyš curr_day o časový rozdíl td.
  • Vykresli n_posts pomocí plt.plot().

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()  
Upravit a spustit kód