Побудуйте графік кількості публікацій у часі
Згадаємо, як можна будувати графіки змінних характеристик графа за його даними. Спершу ви використаєте дані графа, щоб підрахувати кількість ребер, які з'являються у межах ковзного вікна тривалістю td днів; у вправі нижче це 2 дні.
Змінні типу datetime dayone і lastday вже підготовлено для вас.
Ця вправа є частиною курсу
Середній рівень Network Analysis у Python
Інструкції до вправи
- Визначте часовий інтервал у 2 дні за допомогою функції
timedelta(), указавши аргумент для параметраdays. - Усередині циклу
while:- Відфільтруйте ребра так, щоб вони потрапляли в ковзне часовe вікно. Зробіть це за допомогою генератора списку, де вихідним виразом є
(u, v, d), ітератором —G.edges(data=True), і дві умови:d['date']є>=curr_dayта<ніжcurr_day+td. - Додайте кількість ребер (скористайтеся функцією
len()для обчислення) доn_posts. - Збільшіть
curr_dayна інтервалtd.
- Відфільтруйте ребра так, щоб вони потрапляли в ковзне часовe вікно. Зробіть це за допомогою генератора списку, де вихідним виразом є
- Побудуйте графік
n_postsза допомогоюplt.plot().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()