Plot het aantal randwijzigingen in de tijd
Je gaat nu wat grafieken maken! Alle lijsten die je eerder hebt gemaakt, zijn ook in deze oefening voor je geladen. Maak je geen zorgen over de geavanceerde matplotlib-code hieronder: de comments helpen je begrijpen wat er gebeurt.
Deze oefening maakt deel uit van de cursus
Gemiddelde netwerkanalyse in Python
Oefeninstructies
- Plot het aantal toegevoegde randen in de tijd. Doe dit als volgt:
- Gebruik een list comprehension om over
addedte itereren en maak een lijstedges_added. De outputexpressie van de list comprehension islen(g.edges()), waarbijgje iteratievariabele is. - Geef de lijst
edges_addeddoor aanax1.plot().
- Gebruik een list comprehension om over
- Plot het aantal verwijderde randen in de tijd. Gebruik opnieuw een list comprehension, maar dit keer itererend over
removedin plaats vanadded. - Plot de fractionele veranderingen in de tijd door deze mee te geven als argument aan
ax2.plot().
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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()