2 votes

Changement de la couleur des sommets lors du tracé de l'objet communautaire dans R igraph

Je veux exécuter un algorithme de détection de communauté sur un graphe. g pour obtenir l'objet communautaire cd et ensuite utiliser plot(cd,g) pour créer un graphe où les communautés sont contenues dans des gouttes translucides. Cependant, je souhaite également colorer les sommets, et il semble que plot remplace la coloration des sommets que je donne à V(g)$names .

Voici un exemple pour montrer ce que je veux dire :

v1 <- c(1,1,2,3,4,4,6,7,8,9)
v2 <- c(2,3,3,4,5,6,5,8,9,7)

graph <- data.frame(v1,v2)
g <- graph.data.frame(graph, directed=FALSE)

cd <- fastgreedy.community(g)

vcolor <- c("white", "white", "white",
             "blue", "blue", "blue",
             "red", "red", "red")

vertex_attr(g)$color <- vcolor

plot(g)
plot(cd,g)

Quand vous plot(g) les sommets sont rouges, blancs et bleus. Cependant, lorsque vous plot(cd,g) ils sont bleus, verts et orange.

plot(g) :

plot(g)

plot(cd,g) :

plot(cd,g)

Je veux garder les taches translucides, mais forcer ma propre coloration. La raison est que je veux comparer l'appartenance à une communauté (blobs) à une autre classification (couleurs des sommets).

Je n'ai pas eu le même problème lorsque j'ai changé les étiquettes des vertex. Je dois également noter que cela n'a pas fonctionné :

plot(cd,g,vertex.color=vcolor)

1voto

eb2018 Points 1

Je me rends compte qu'il s'agit d'une vieille question, mais je me suis également débattu avec elle et je pense avoir trouvé une réponse simple, au cas où elle serait utile. En utilisant votre exemple :

v1 <- c(1,1,2,3,4,4,6,7,8,9)
v2 <- c(2,3,3,4,5,6,5,8,9,7)

graph <- data.frame(v1,v2)
g <- graph.data.frame(graph, directed=FALSE)

cd <- fastgreedy.community(g)

vcolor <- c("white", "white", "white",
            "blue", "blue", "blue",
            "red", "red", "red")

plot(cd,g,
     col = vcolor)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X