НачатьНачать бесплатно

Визуализация количества публикаций со временем

Вспомним, как строить графики изменяющейся статистики графа на основе данных о нём. Сначала вы используете данные графа, чтобы подсчитать количество рёбер, которые появляются в скользящем временном окне размером td дней — в данном упражнении это 2 дня.

Переменные типа datetime — dayone и lastday — уже заданы для вас.

Это упражнение является частью курса

Средний уровень сетевого анализа на Python

Посмотреть курс

Инструкции к упражнению

  • Определите временной интервал в 2 дня с помощью функции timedelta(), указав соответствующее значение параметра days.
  • Внутри цикла while:
    • Отфильтруйте рёбра так, чтобы они попадали в скользящее временное окно. Используйте генератор списка: выходным выражением должно быть (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()  
Редактировать и запускать код