ПочатиПочніть безкоштовно

Побудуйте графік кількості публікацій у часі

Згадаємо, як можна будувати графіки змінних характеристик графа за його даними. Спершу ви використаєте дані графа, щоб підрахувати кількість ребер, які з'являються у межах ковзного вікна тривалістю 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.
  • Побудуйте графік 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()  
Редагувати та запускати код