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
Anleitung zur Übung
- Plotte die Zahl der hinzugefügten Kanten über die Zeit. So gehst du vor:
- Verwende eine List Comprehension, um über
addedzu iterieren, und erstelle eine Liste namensedges_added. Der Ausgabeausdruck der List Comprehension istlen(g.edges()), wobeigdeine Iteratorvariable ist. - Übergib die Liste
edges_addedanax1.plot().
- Verwende eine List Comprehension, um über
- Plotte die Zahl der entfernten Kanten über die Zeit. Verwende erneut eine List Comprehension, diesmal iterierst du über
removedstatt überadded. - 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()