LoslegenKostenlos loslegen

Anzahl der Beiträge im Zeitverlauf plotten

Fassen wir zusammen, wie du sich entwickelnde Graph-Statistiken aus Graphdaten plotten kannst. Zuerst verwendest du die Graphdaten, um die Anzahl der Kanten zu quantifizieren, die innerhalb eines Zeitfensters td Tage auftreten; im Beispiel unten sind das 2 Tage.

Die Datetime-Variablen dayone und lastday sind für dich vorgegeben.

Diese Übung ist Teil des Kurses

Fortgeschrittene Netzwerkanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Definiere eine Zeitspanne von 2 Tagen mit der Funktion timedelta() und einem Argument für den Parameter days.
  • Innerhalb der while-Schleife:
    • Filtere Kanten so, dass sie innerhalb des gleitenden Zeitfensters liegen. Verwende dafür eine List Comprehension, bei der der Ausgabeausdruck (u, v, d) ist, der Iterator G.edges(data=True) und zwei Bedingungen gelten: wenn d['date'] >= curr_day und < curr_day + td ist.
    • Hänge die Anzahl der Kanten (verwende dafür die Funktion len()) an n_posts an.
    • Erhöhe curr_day um die Zeitspanne td.
  • Erstelle ein Diagramm von n_posts mit plt.plot().

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()  
Code bearbeiten und ausführen