LoslegenKostenlos loslegen

Anzahl der Kantenänderungen über die Zeit plotten

Jetzt erstellst du ein paar Plots! Alle Listen, die du zuvor erzeugt hast, wurden auch in dieser Übung für dich geladen. Mach dir keine Sorgen um den etwas ausgeklügelten matplotlib-Code unten: Kommentare helfen dir zu verstehen, was passiert.

Diese Übung ist Teil des Kurses

Fortgeschrittene Netzwerkanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Plotte die Zahl der hinzugefügten Kanten über die Zeit. So gehst du vor:
    • Verwende eine List Comprehension, um über added zu iterieren, und erstelle eine Liste namens edges_added. Der Ausgabeausdruck der List Comprehension ist len(g.edges()), wobei g deine Iteratorvariable ist.
    • Übergib die Liste edges_added an ax1.plot().
  • Plotte die Zahl der entfernten Kanten über die Zeit. Verwende erneut eine List Comprehension, diesmal iterierst du über removed statt über added.
  • Plotte die relativen Änderungen über die Zeit, indem du sie als Argument an ax2.plot() übergibst.

Interaktive Übung

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

# Import matplotlib
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)

# Plot the number of edges added over time
edges_added = [____(____) for ____ in ____]
plot1 = ax1.plot(____, label='added', color='orange')

# Plot the number of edges removed over time
edges_removed = [____(____) for ____ in ____]
plot2 = ax1.plot(____, label='removed', color='purple')

# Set yscale to logarithmic scale
ax1.set_yscale('log')  
ax1.legend()

# 2nd axes shares x-axis with 1st axes object
ax2 = ax1.twinx()

# Plot the fractional changes over time
plot3 = ax2.plot(____, label='fractional change', color='green')

# Here, we create a single legend for both plots
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines1 + lines2, labels1 + labels2, loc=0)
plt.axhline(0, color='green', linestyle='--')
plt.show()
Code bearbeiten und ausführen