Wizualizacja ważnych wierzchołków i krawędzi
W zbiorze danych o odrze mamy trzy osoby, o których nie wiadomo, kto je zaraził. Jedna z nich (wierzchołek 184) jest prawdopodobnie odpowiedzialna za rozprzestrzenienie choroby na wiele innych osób – mimo że bezpośrednio zaraziła stosunkowo niewiele. Ponieważ wierzchołek 184 nie ma żadnej przychodzącej krawędzi, jego centralność pośrednictwa wydaje się niska. Jednym ze sposobów zbadania znaczenia tego wierzchołka jest wizualizacja odległości geodezyjnych połączeń wychodzących od tej osoby. W tym ćwiczeniu stworzysz wykres tych odległości od pacjenta zero.
To ćwiczenie jest częścią kursu
Analiza sieci w R
Instrukcje do ćwiczenia
- Użyj funkcji
make_ego_graph(), aby utworzyć podzbiór sieci złożony z wierzchołków połączonych z wierzchołkiem 184. Pierwszym argumentem jest oryginalny grafg. Drugi argument to maksymalna liczba połączeń, jaką dany wierzchołek musi mieć, żeby zostać uwzględnionym. Możesz tu użyć funkcjidiameter(), która zwraca długość najdłuższej ścieżki w sieci. Trzeci argument to interesujący nas wierzchołek – w tym przypadku 184. Ostatni argument określa tryb – uwzględnij wszystkie połączenia niezależnie od kierunku. - Utwórz obiekt
distszawierający odległość geodezyjną każdego wierzchołka od wierzchołka 184. Do obliczenia użyj funkcjidistances(). - Przypisz każdemu wierzchołkowi atrybut
color. Kolor będzie dobierany na podstawie odległości geodezyjnej. Paletacolorsma długość równą maksymalnej odległości geodezyjnej plus jeden – dzięki temu wierzchołki o tej samej odległości mają ten sam kolor, a pacjent zero otrzymuje własny kolor. - Użyj funkcji
plot(), aby zwizualizować siećg184. Jako etykiety wierzchołków użyj odległości geodezyjnychdists.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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"
)