Візуалізація важливих вершин і ребер
Одна проблема з набором даних щодо кору полягає в тому, що є троє осіб, для яких невідомо, хто їх інфікував. Одна з цих осіб (вершина 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"
)