Kom igångKom igång gratis

Nätverkslayouter i igraph

igraph-paketet innehåller flera inbyggda layoutalgoritmer för nätverksvisualisering. Beroende på nätverkets storlek kan olika layouter vara mer eller mindre effektiva för att kommunicera nätverkets struktur. Den bästa layouten är i allmänhet den som minimerar antalet korsande kanter. I den här övningen får du utforska några av de många standardlayoutalgoritmer som finns tillgängliga. Om du kör om koden för varje plot får du en något annorlunda version av samma layouttyp. Att göra detta ett par gånger kan hjälpa dig att hitta den snyggaste visualiseringen för ditt nätverk.

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

Nätverksanalys i R

Visa kurs

Övningsinstruktioner

  • Ändra layout-argumentet i plot-funktionen till layout_in_circle() för att skapa ett cirkulärt nätverk.
  • Ändra layout-argumentet i plot-funktionen till layout_with_fr() för att skapa ett nätverk med Fruchterman-Reingold-layouten.
  • Du kan också ange layouten genom att skicka in en matris med (x, y)-koordinater för varje nod. Här använder du funktionen layout_as_tree() för att generera koordinatmatrisen m. Skicka sedan m till layout-parametern i plot() för att rita grafen.
  • Att välja rätt layout kan kännas överväldigande. Som tur är har igraph funktionen layout_nicely(), som försöker välja den lämpligaste layoutfunktionen för ett givet grafobjekt. Använd den här funktionen för att skapa matrisen m1 och rita nätverket med dessa koordinater.

Interaktiv övning med praktiskt arbete

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

library(igraph)

# Plot the graph object g1 in a circle layout
plot(g1, vertex.label.color = "black", layout = ___(g1))

# Plot the graph object g1 in a Fruchterman-Reingold layout 
plot(g1, vertex.label.color = "black", layout = ___(g1))

# Plot the graph object g1 in a Tree layout 
m <- ___(g1)
plot(g1, vertex.label.color = "black", layout = m)

# Plot the graph object g1 using igraph's chosen layout 
___ <- layout_nicely(___)
plot(___, vertex.label.color = "black", layout = ___)
Redigera och kör kod