Tracer le nombre de publications au fil du temps
Récapitulons comment tracer l'évolution de statistiques de graphe à partir des données du graphe. D'abord, vous utiliserez les données du graphe pour quantifier le nombre d'arêtes qui apparaissent dans une fenêtre temporelle de regroupement de td jours, soit 2 jours dans l'exercice ci-dessous.
Les variables datetime dayone et lastday vous sont fournies.
Cette activité fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions de l’exercice
- Définissez un délai (timedelta) de 2 jours en utilisant la fonction
timedelta()et en précisant un argument pour le paramètredays. - À l'intérieur de la boucle
while:- Filtrez les arêtes de sorte qu'elles se trouvent 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<quecurr_day+td. - Ajoutez le nombre d'arêtes (utilisez la fonction
len()pour vous aider à le calculer) àn_posts. - Incrémentez
curr_daydu délaitd.
- Filtrez les arêtes de sorte qu'elles se trouvent dans la fenêtre temporelle glissante. Utilisez pour cela une compréhension de liste, où l'expression de sortie est
- Créez un graphique de
n_postsavecplt.plot().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()