Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Plot het aantal toegevoegde randen in de tijd. Doe dit als volgt:
    • Gebruik een list comprehension om over added te itereren en maak een lijst edges_added. De outputexpressie van de list comprehension is len(g.edges()), waarbij g je iteratievariabele is.
    • Geef de lijst edges_added door aan ax1.plot().
  • Plot het aantal verwijderde randen in de tijd. Gebruik opnieuw een list comprehension, maar dit keer itererend over removed in plaats van added.
  • 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()
Code bewerken en uitvoeren