Dispositions de réseaux avec igraph
Le paquet igraph offre plusieurs algorithmes de disposition intégrés pour la visualisation de réseaux. Selon la taille du réseau, certaines dispositions communiquent mieux sa structure. Idéalement, la meilleure disposition est celle qui minimise le nombre d'arêtes qui se croisent. Dans cet exercice, vous allez explorer quelques-uns des nombreux algorithmes de disposition par défaut. Réexécuter le code pour chaque tracé produira une variante légèrement différente du même type de disposition. Le faire plusieurs fois peut vous aider à trouver la visualisation la plus convaincante pour votre réseau.
Cette activité fait partie du cours
Analyse de réseaux avec R
Instructions de l’exercice
- Dans la fonction plot, remplacez l'argument
layoutparlayout_in_circle()pour produire un réseau en cercle. - Dans la fonction plot, remplacez l'argument
layoutparlayout_with_fr()pour produire un réseau avec la disposition de Fruchterman-Reingold. - Vous pouvez aussi préciser la disposition en fournissant une matrice de coordonnées (x, y) pour chaque sommet. Ici, utilisez la fonction
layout_as_tree()pour générer la matricemde coordonnées. Ensuite, passezmà l'argumentlayoutdeplot()pour tracer. - Choisir la bonne disposition peut être déroutant. Heureusement,
igraphpropose la fonctionlayout_nicely()qui tente de choisir la disposition la plus appropriée pour un objet graphe donné. Utilisez cette fonction pour produire la matricem1et tracez le réseau à l'aide de ces coordonnées.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
library(igraph)
# Plot the graph object g1 in a circle layout
plot(g1, vertex.label.color = "black", layout = ___(g1))
# Plot the graph object g1 in a Fruchterman-Reingold layout
plot(g1, vertex.label.color = "black", layout = ___(g1))
# Plot the graph object g1 in a Tree layout
m <- ___(g1)
plot(g1, vertex.label.color = "black", layout = m)
# Plot the graph object g1 using igraph's chosen layout
___ <- layout_nicely(___)
plot(___, vertex.label.color = "black", layout = ___)