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
Pokyny k cvičení
- Definuj časový rozdíl 2 dnů pomocí funkce
timedelta()se zadáním hodnoty parametrudays. - 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 jeG.edges(data=True)a platí dvě podmínky:d['date']je>=curr_daya zároveň<nežcurr_day+td. - Přidej počet hran (pro výpočet použij funkci
len()) don_posts. - Zvyš
curr_dayo časový rozdíltd.
- Filtruj hrany tak, aby spadaly do posuvného časového okna. Použij k tomu generátor seznamu, kde výstupní výraz je
- Vykresli
n_postspomocí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()