ПочатиПочніть безкоштовно

Розташування мереж у 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 = ___)
Редагувати та запускати код