Bắt đầu ngayBắt đầu miễn phí

Vẽ số lượng bài đăng theo thời gian

Hãy cùng tổng kết cách bạn có thể vẽ các thống kê đồ thị biến thiên theo thời gian từ dữ liệu đồ thị. Trước hết, bạn sẽ dùng dữ liệu đồ thị để định lượng số lượng cạnh xuất hiện trong một cửa sổ thời gian phân mảnh có kích thước td ngày, là 2 ngày trong bài tập dưới đây.

Các biến datetime dayonelastday đã được cung cấp cho bạn.

Bài tập này là một phần của khóa học

Phân tích mạng nâng cao với Python

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một timedelta 2 ngày bằng hàm timedelta() và chỉ định đối số cho tham số days.
  • Bên trong vòng lặp while:
    • Lọc các cạnh sao cho chúng nằm trong cửa sổ thời gian trượt. Dùng một list comprehension để làm việc này, với biểu thức đầu ra là (u, v, d), iterable là G.edges(data=True), và có hai điều kiện: nếu d['date']>= curr_day < curr_day + td.
    • Thêm số lượng cạnh (dùng hàm len() để tính) vào n_posts.
    • Tăng curr_day thêm khoảng thời gian td.
  • Vẽ biểu đồ n_posts bằng plt.plot().

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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()  
Chỉnh sửa và Chạy Mã