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
Instruções do exercício
- Defina um timedelta de 2 dias usando a função
timedelta()e especificando um argumento para o parâmetrodays. - 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: sed['date']é>=curr_daye<quecurr_day+td. - Acrescente o número de arestas (use a função
len()para ajudar no cálculo) an_posts. - Incremente
curr_daypelo delta de tempotd.
- 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 é
- Faça um gráfico de
n_postsusandoplt.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()