ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Define un timedelta de 2 días usando la función timedelta() y especificando un argumento para el parámetro days.
  • 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 es G.edges(data=True) y hay dos condiciones: que d['date'] sea >= que curr_day y < que curr_day + td.
    • Añade el número de aristas (usa la función len() para calcularlo) a n_posts.
    • Incrementa curr_day en el delta de tiempo td.
  • Crea una gráfica de n_posts usando plt.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()  
Editar y ejecutar código