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
Övningsinstruktioner
- Ändra
layout-argumentet i plot-funktionen tilllayout_in_circle()för att skapa ett cirkulärt nätverk. - Ändra
layout-argumentet i plot-funktionen tilllayout_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 koordinatmatrisenm. Skicka sedanmtilllayout-parametern iplot()för att rita grafen. - Att välja rätt layout kan kännas överväldigande. Som tur är har
igraphfunktionenlayout_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 matrisenm1och 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 = ___)