GIORIGO
GIORIGO

Reputation: 59

Color the edges the same color as the nodes in igraph

I have a dataset similar to this.

    library(igraph)

df <- data.frame(Account= c('Luca', 'Alberto', 'Luisa', 'Marcello', 'Tania'),
                 friend = c('Alberto', 'Luisa', 'Tania', 'Alberto', 'Luisa'))


edges1 = data.frame("from" =df$Account , "to" =df$friend , stringsAsFactors = F )
net <- graph_from_data_frame(d= edges1, directed = T)
V(net)$degree <- degree(net)
plot(net, vertex.size=20,
     vertex.color=rainbow(11),
     edge.arrow.width=0.7,
     edge.lty= 6)

this is the result enter image description here

I would like to color each edge the same color as the node it started from. For example, each link from Luca in red, each link from Luisa in yellow. Couldn't find anything about it, thanks in advance

Upvotes: 2

Views: 721

Answers (1)

G. Grothendieck
G. Grothendieck

Reputation: 270170

In the question the vertex colors were set in the plot command so they were not part of the graph. Instead set the vertex colors in the graph itself and then set the edge colors based on those.

V(net)$color <- rainbow(ecount(net))
E(net)$color <- tail_of(net, E(net))$color
plot(net)

screenshot

Upvotes: 3

Related Questions