Rozvržení sítí v igraph
Balíček igraph nabízí několik vestavěných algoritmů pro rozvržení sítí při jejich vizualizaci. V závislosti na velikosti dané sítě mohou různá rozvržení lépe vystihovat její strukturu. Ideální rozvržení je takové, které minimalizuje počet překřížených hran v síti. V tomto cvičení prozkoumáš několik z mnoha dostupných výchozích algoritmů rozvržení. Opakované spuštění kódu pro každý graf pokaždé vygeneruje mírně odlišnou verzi stejného typu rozvržení – několik pokusů ti může pomoci najít nejlépe vypadající vizualizaci pro tvoji síť.
Toto cvičení je součástí kurzu
Analýza sítí v R
Pokyny k cvičení
- Ve funkci
plotzměň argumentlayoutnalayout_in_circle(), aby se síť zobrazila v kruhovém rozvržení. - Ve funkci
plotzměň argumentlayoutnalayout_with_fr(), aby se síť zobrazila s rozvržením Fruchterman-Reingold. - Rozvržení lze také zadat přímo jako matici souřadnic (x, y) pro každý vrchol. Použij funkci
layout_as_tree()k vygenerování maticemse souřadnicemi a poté předejmparametrulayoutve funkciplot(). - Výběr správného rozvržení může být matoucí.
igraphnaštěstí nabízí funkcilayout_nicely(), která se sama pokusí zvolit nejvhodnější algoritmus rozvržení pro daný objekt grafu. Pomocí této funkce vytvoř maticim1a vykresli síť s použitím těchto souřadnic.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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 = ___)