在R中为网络添加多种颜色

时间:2015-04-28 08:18:33

标签: r plot

library(igraph) 
data <- read.csv("ex.txt", sep=" ", header=F)   

数据包含边列表

graph <- graph.data.frame(data) 
data1 <- read.csv("ex1.txt", sep=" ", header=F)  

data1包含顶点的成员资格ID

memberships <- list()  
V(g)$membership <- data1$V2  
V(g) [ membership == 0 ]$color <- "red"   
V(g) [ membership == 1 ]$color <- "blue"  
V(g) [ membership == 2 ]$color <- "green"
V(g) [ membership == 3 ]$color <- "brown"
V(g) [ membership == 4 ]$color <- "orange" 
V(g) [ membership == 5 ]$color <- "Yellow" 
plot(g, layout=layout.fruchterman.reingold, vertex.color=V(g)$membership , vertex.size = 2,vertex.label = NA)

如果您注意到,颜色与预期不符,则会出现黑色和两种未提及的蓝色变化。

Plot of the network

我无法找到任何其他分配顶点颜色的方法。请给我一些替代方案

1 个答案:

答案 0 :(得分:1)

vertex.color映射到V(g)$color

library(igraph) 
set.seed(1)
g <- barabasi.game(100, .3)
eb <- edge.betweenness.community(g)
V(g)$membership <- membership(edge.betweenness.community(g))
V(g)$color = "black"
V(g) [ membership == 1 ]$color <- "blue"  
V(g) [ membership == 2 ]$color <- "green"
V(g) [ membership == 3 ]$color <- "brown"
V(g) [ membership == 4 ]$color <- "orange" 
V(g) [ membership == 5 ]$color <- "Yellow" 
V(g) [ membership == 6 ]$color <- "red" 
plot(g, layout=layout.fruchterman.reingold, vertex.color=V(g)$color , vertex.size = 2,vertex.label = NA, edge.arrow.size = .3)