CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Dans la fonction plot, remplacez l'argument layout par layout_in_circle() pour produire un réseau en cercle.
  • Dans la fonction plot, remplacez l'argument layout par layout_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 matrice m de coordonnées. Ensuite, passez m à l'argument layout de plot() pour tracer.
  • Choisir la bonne disposition peut être déroutant. Heureusement, igraph propose la fonction layout_nicely() qui tente de choisir la disposition la plus appropriée pour un objet graphe donné. Utilisez cette fonction pour produire la matrice m1 et 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 = ___)
Modifier et exécuter le code