Kom igångKom igång gratis

Plotta antal kantförändringar över tid

Nu ska du skapa några plottar! Alla listor du har skapat tidigare finns inlästa i den här övningen. Du behöver inte oroa dig för den mer avancerade matplotlib-koden nedan – det finns kommentarer som förklarar vad som händer.

Den här övningen är en del av kursen

Nätverksanalys i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Plotta antalet tillagda kanter över tid. Gör så här:
    • Använd en listkompression för att iterera över added och skapa en lista kallad edges_added. Utrycket i listkompressionens är len(g.edges()), där g är din iteratorvariabel.
    • Skicka in listan edges_added till ax1.plot().
  • Plotta antalet borttagna kanter över tid. Använd återigen en listkompression, men iterera den här gången över removed i stället för added.
  • Plotta de fraktionella förändringarna över tid genom att skicka in dem som argument till ax2.plot().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod