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

Візуалізація важливих вершин і ребер

Одна проблема з набором даних щодо кору полягає в тому, що є троє осіб, для яких невідомо, хто їх інфікував. Одна з цих осіб (вершина 184) зрештою відповідальна за поширення хвороби на багатьох інших, хоча безпосередньо вона інфікувала не так багато людей. Проте, оскільки у вершини 184 немає вхідних ребер у мережі, її посередництво виглядає низьким. Один зі способів дослідити важливість цієї вершини — візуалізувати геодезичні відстані зв'язків, що виходять від цієї особи. У цій вправі ви створите графік цих відстаней від цього «нульового пацієнта».

Ця вправа є частиною курсу

Аналіз мереж у R

Переглянути курс

Інструкції до вправи

  • Використайте make_ego_graph(), щоб створити підграф нашої мережі з вершин, які з'єднані з вершиною 184. Перший аргумент — початковий граф g. Другий аргумент — максимальна кількість зв'язків, яка потрібна будь-якій вершині, щоб бути з'єднаною з нашою цільовою вершиною. У цьому разі можна використати diameter(), щоб повернути довжину найкоротшого найдовшого шляху в мережі. Третій аргумент — це наша цільова вершина, якою має бути 184. Останній аргумент — режим. У цьому випадку можна включити всі зв'язки незалежно від напрямку.
  • Створіть об'єкт dists, що містить геодезичну відстань кожної вершини від вершини 184. Скористайтеся для цього функцією distances().
  • Призначте атрибут color кожній вершині. Колір для вершини вибирається на основі її геодезичної відстані. Палітра colors має довжину, що дорівнює максимальній геодезичній відстані плюс один. Це потрібно, щоб вершини з однаковою відстанню відображалися одним кольором, а «нульовий пацієнт» також мав свій колір.
  • Використайте plot(), щоб візуалізувати мережу g184. Підписи вершин мають відображати геодезичні відстані dists.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Make an ego graph
g184 <- ___(g, ___(g), nodes = '184', mode = c("all"))[[1]]

# Get a vector of geodesic distances of all vertices from vertex 184 
dists <- ___(g184, "184")

# Create a color palette of length equal to the maximal geodesic distance plus one.
colors <- c("black", "red", "orange", "blue", "dodgerblue", "cyan")

# Set color attribute to vertices of network g184.
V(___)$color <- colors[dists+1]

# Visualize the network based on geodesic distance from vertex 184 (patient zero).
___(___, 
     vertex.label = ___, 
     vertex.label.color = "white",
     vertex.label.cex = .6,
     edge.color = 'black',
     vertex.size = 7,
     edge.arrow.size = .05,
     main = "Geodesic Distances from Patient Zero"
     )
Редагувати та запускати код