igraph-netwerklayouts
Het igraph-pakket biedt verschillende ingebouwde layout-algoritmen voor netwerkvisualisatie. Afhankelijk van de grootte van een netwerk kunnen verschillende layouts effectiever zijn om de structuur duidelijk te maken. Idealiter is de beste layout degene die het aantal randen dat elkaar kruist minimaliseert. In deze oefening verken je een paar van de vele standaard layout-algoritmen. Het opnieuw uitvoeren van de code voor elke plot levert telkens een iets andere versie van hetzelfde layouttype op. Dit een paar keer doen kan helpen om de best uitziende visualisatie voor je netwerk te vinden.
Deze oefening maakt deel uit van de cursus
Netwerkanalyse in R
Oefeninstructies
- Verander in de plotfunctie het argument
layoutnaarlayout_in_circle()om een cirkelnetwerk te maken. - Verander in de plotfunctie het argument
layoutnaarlayout_with_fr()om een netwerk met de Fruchterman-Reingold-layout te maken. - Je kunt de layout ook vastleggen door een matrix met (x, y)-coördinaten voor elk knooppunt op te geven. Hier gebruik je de functie
layout_as_tree()om de matrixmmet coördinaten te genereren. Geef daarnamdoor aan hetlayout-argument inplot()om te plotten. - De juiste layout kiezen kan verwarrend zijn. Gelukkig heeft
igrapheen functielayout_nicely()die probeert de meest geschikte layoutfunctie voor een bepaald graafobject te kiezen. Gebruik deze functie om de matrixm1te maken en plot het netwerk met deze coördinaten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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 = ___)