समय के साथ बनाए गए पोस्टों की संख्या का प्लॉट बनाइए
आइए दोहराएँ कि आप ग्राफ डेटा से बदलते हुए ग्राफ आँकड़ों का प्लॉट कैसे बना सकते हैं। सबसे पहले, आप ग्राफ डेटा का उपयोग करके उन edges की गणना करेंगे जो td दिनों की चंकिंग टाइम विंडो के भीतर आती हैं — नीचे दिए अभ्यास में यह 2 दिन है.
आपके लिए datetime वैरिएबल्स dayone और lastday दिए गए हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट Network Analysis in Python
अभ्यास निर्देश
timedelta()फंक्शन का उपयोग करके 2 दिनों का timedelta परिभाषित करें औरdaysपैरामीटर के लिए आर्ग्यूमेंट दें.whileलूप के अंदर:- edges को ऐसे फ़िल्टर करें कि वे स्लाइडिंग टाइम विंडो के भीतर हों। इसके लिए लिस्ट कॉम्प्रिहेंशन का उपयोग करें, जहाँ आउटपुट एक्सप्रेशन
(u, v, d)है, इटेरेबलG.edges(data=True)है, और दो कंडीशन्स हैं: अगरd['date']>=curr_dayहो और<curr_day+tdसे कम हो. - edges की संख्या (यह निकालने में मदद के लिए
len()फंक्शन का उपयोग करें) कोn_postsमें append करें. curr_dayको time deltatdसे इंक्रीमेंट करें.
- edges को ऐसे फ़िल्टर करें कि वे स्लाइडिंग टाइम विंडो के भीतर हों। इसके लिए लिस्ट कॉम्प्रिहेंशन का उपयोग करें, जहाँ आउटपुट एक्सप्रेशन
plt.plot()का उपयोग करकेn_postsका प्लॉट बनाइए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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()