ComeçarComece de graça

Plotar o número de posts ao longo do tempo

Vamos recapitular como você pode plotar estatísticas de grafos em evolução a partir dos dados do grafo. Primeiro, você vai usar os dados do grafo para quantificar o número de arestas que aparecem dentro de uma janela de tempo de agrupamento de td dias, que é de 2 dias no exercício abaixo.

As variáveis dayone e lastday de datetime foram fornecidas para você.

Este exercício faz parte do curso

Análise de Redes Intermediária em Python

Ver curso

Instruções do exercício

  • Defina um timedelta de 2 dias usando a função timedelta() e especificando um argumento para o parâmetro days.
  • Dentro do loop while:
    • Filtre as arestas de forma que fiquem dentro da janela de tempo deslizante. Use uma list comprehension para isso, em que a expressão de saída é (u, v, d), o iterável é G.edges(data=True), e há duas condições: se d['date'] é >= curr_day e < que curr_day + td.
    • Acrescente o número de arestas (use a função len() para ajudar no cálculo) a n_posts.
    • Incremente curr_day pelo delta de tempo td.
  • Faça um gráfico de n_posts usando plt.plot().

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código