Tracer le nombre de messages publiés au fil du temps
Récapitulons comment tracer des statistiques de graphe qui évoluent dans le temps. Vous allez d’abord utiliser les données du graphe pour compter le nombre d’arêtes qui apparaissent dans une fenêtre temporelle glissante de td jours, qui est de 2 jours dans l’exercice ci-dessous.
Les variables datetime dayone et lastday vous ont été fournies.
Cet exercice fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions
- Définissez un timedelta de 2 jours avec la fonction
timedelta()en précisant un argument pour le paramètredays. - À l’intérieur de la boucle
while:- Filtrez les arêtes pour qu’elles se situent dans la fenêtre temporelle glissante. Utilisez pour cela une compréhension de liste, où l’expression de sortie est
(u, v, d), l’itérable estG.edges(data=True), et il y a deux conditions : sid['date']est>=àcurr_dayet<àcurr_day+td. - Ajoutez le nombre d’arêtes (utilisez la fonction
len()pour vous aider à le calculer) àn_posts. - Incrémentez
curr_daydu delta temporeltd.
- Filtrez les arêtes pour qu’elles se situent dans la fenêtre temporelle glissante. Utilisez pour cela une compréhension de liste, où l’expression de sortie est
- Tracez un graphique de
n_postsavecplt.plot().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()