Визуализация важных вершин и рёбер
В наборе данных о кори есть одна особенность: для трёх человек неизвестно, кто именно заразил их. Один из них — вершина 184 — по всей видимости, стал источником распространения болезни для многих других, хотя напрямую заразил сравнительно немногих. Поскольку у вершины 184 нет входящих рёбер, её посредническая центральность (betweenness) кажется низкой. Чтобы лучше понять роль этой вершины, можно визуализировать геодезические расстояния от неё до остальных вершин сети. В этом упражнении вы построите такой график для данного «нулевого пациента».
Это упражнение является частью курса
Анализ сетей в 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"
)