Visualiser les nœuds et arêtes importants
Un problème avec le jeu de données sur la rougeole est que, pour trois personnes, on ne sait pas qui les a contaminées. L’une d’elles (le sommet 184) semble, au final, responsable d’avoir propagé la maladie à de nombreuses autres personnes, même si elle n’a pas infecté directement beaucoup d’individus. Cependant, comme le sommet 184 n’a aucune arête entrante dans le réseau, sa centralité d’intermédiarité apparaît faible. Une façon d’explorer l’importance de ce sommet est de visualiser les distances géodésiques des connexions sortant de cet individu. Dans cet exercice, vous allez tracer ces distances à partir de ce patient zéro.
Cet exercice fait partie du cours
Analyse de réseaux avec R
Instructions
- Utilisez
make_ego_graph()pour créer un sous-ensemble de notre réseau composé des sommets connectés au sommet 184. Le premier argument est le graphe originalg. Le deuxième argument est le nombre maximal de connexions qu’un sommet doit avoir pour être relié à notre sommet d’intérêt. Dans ce cas, nous pouvons utiliserdiameter()pour obtenir la longueur du plus long chemin dans le réseau. Le troisième argument est notre sommet d’intérêt, qui doit être 184. Le dernier argument est le mode. Ici, vous pouvez inclure toutes les connexions, quelle que soit leur direction. - Créez un objet
distsqui contient la distance géodésique de chaque sommet par rapport au sommet 184. Utilisez la fonctiondistances()pour le calculer. - Attribuez l’attribut
colorà chaque sommet. Chaque couleur sera choisie en fonction de sa distance géodésique. La palette de couleurscolorsa une longueur égale à la distance géodésique maximale plus un. Ainsi, les sommets à la même distance sont tracés avec la même couleur et le patient zéro a aussi sa propre couleur. - Utilisez
plot()pour visualiser le réseaug184. L’étiquette des sommets doit être la distance géodésiquedists.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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"
)