Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Colour specific node in igraph

I am trying to colour node 6 and 7 regardless of whatever letter is selected from object 'd'.

g <- graph_from_literal(1:2:3:4:5 -- 6:7)
# Rename (sum up all the vertices)
d <- c("a", "b", "c", "d", "e", "f", "g","h", "i", "j")

V(g)$name <- sample(d, 7, replace=TRUE)
colours <- c("red")
V(g)$color <- ifelse(V(g)$name == c('a','e'), "white", colours)

plot.igraph(g, layout=layout_with_dh, vertex.label=V(g)$name, 
vertex.size=35,
vertex.color=V(g)$color, #colors.r
vertex.label.cex=0.7,
)

I tried the ifelse() above but they don't seem to take numerical value. I would appreciate some help please.

What I want is that node 6 is e.g. white and 7 is e.g. green and the rest of the other nodes are red.

Thank you!

like image 242
Sam Avatar asked Dec 24 '22 15:12

Sam


2 Answers

You could do

V(g)$color <- "red" 
V(g)$color[6] <- "white"
V(g)$color[7] <- "green"
like image 107
lukeA Avatar answered Dec 31 '22 05:12

lukeA


You can also do:

V(g)["nameofnode"]$color<-"red"
like image 24
Suat Atan PhD Avatar answered Dec 31 '22 03:12

Suat Atan PhD