Reprezentarea grafică a numărului de postări în timp
Să recapitulăm cum poți reprezenta grafic statistici ale unui graf care evoluează în timp. Mai întâi, vei folosi datele grafului pentru a cuantifica numărul de muchii care apar într-o fereastră de timp de td zile – în exercițiul de mai jos, aceasta este de 2 zile.
Variabilele datetime dayone și lastday sunt deja definite pentru tine.
Acest exercițiu face parte din cursul
Analiză intermediară a rețelelor în Python
Instrucțiuni pentru exercițiu
- Definește un timedelta de 2 zile folosind funcția
timedelta()și specificând un argument pentru parametruldays. - În interiorul buclei
while:- Filtrează muchiile astfel încât să se afle în fereastra de timp glisantă. Folosește o comprehensiune de listă în care expresia de ieșire este
(u, v, d), iterabilul esteG.edges(data=True)și există două condiții:d['date']este>=curr_dayși<decâtcurr_day+td. - Adaugă numărul de muchii (folosește funcția
len()pentru a-l calcula) lan_posts. - Incrementează
curr_daycu timedeltatd.
- Filtrează muchiile astfel încât să se afle în fereastra de timp glisantă. Folosește o comprehensiune de listă în care expresia de ieșire este
- Realizează un grafic al
n_postsfolosindplt.plot().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()