Розташування мереж у igraph
Пакет igraph має кілька вбудованих алгоритмів розташування для візуалізації мереж. Залежно від розміру мережі різні розташування можуть краще передавати її структуру. Ідеально, якщо розташування мінімізує кількість перетинів ребер у мережі. У цій вправі ви дослідите лише кілька з багатьох типових алгоритмів розташування. Повторний запуск коду для кожного графіка призводить до трохи іншої версії того самого типу розташування. Зробивши це кілька разів, ви зможете знайти найкращий вигляд візуалізації для своєї мережі.
Ця вправа є частиною курсу
Аналіз мереж у R
Інструкції до вправи
- У функції plot змініть аргумент
layoutнаlayout_in_circle(), щоб отримати мережу-коло. - У функції plot змініть аргумент
layoutнаlayout_with_fr(), щоб побудувати мережу з розташуванням Fruchterman–Reingold. - Розташування також можна задати, передавши матрицю координат (x, y) для кожної вершини. Тут ви використовуєте функцію
layout_as_tree(), щоб згенерувати матрицю координатm. Потім передайтеmдо параметраlayoutуplot(), щоб побудувати графік. - Вибір правильного розташування може збивати з пантелику. На щастя, в
igraphє функціяlayout_nicely(), яка намагається підібрати найвідповіднішу функцію розташування для заданого об'єкта графа. Використайте цю функцію, щоб отримати матрицюm1, і побудуйте мережу, використовуючи ці координати.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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 = ___)