Representa el número de publicaciones a lo largo del tiempo
Recapitulemos cómo puedes representar estadísticas de un grafo que evolucionan en el tiempo a partir de los datos del grafo. Primero, usarás los datos del grafo para cuantificar el número de aristas que aparecen dentro de una ventana temporal de segmentación de td días, que en el ejercicio de abajo es de 2 días.
Las variables de tipo datetime dayone y lastday ya están disponibles para ti.
Este ejercicio forma parte del curso
Análisis de redes intermedio en Python
Instrucciones del ejercicio
- Define un timedelta de 2 días usando la función
timedelta()y especificando un argumento para el parámetrodays. - Dentro del bucle
while:- Filtra las aristas para que queden dentro de la ventana temporal deslizante. Usa una list comprehension para hacerlo, donde la expresión de salida es
(u, v, d), el iterable esG.edges(data=True)y hay dos condiciones: qued['date']sea>=quecurr_dayy<quecurr_day+td. - Añade el número de aristas (usa la función
len()para calcularlo) an_posts. - Incrementa
curr_dayen el delta de tiempotd.
- Filtra las aristas para que queden dentro de la ventana temporal deslizante. Usa una list comprehension para hacerlo, donde la expresión de salida es
- Crea una gráfica de
n_postsusandoplt.plot().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()