如何指定为一个顶点分配多于一种颜色的规则?

时间:2018-11-26 06:04:16

标签: r igraph pie-chart sna

我有一个igraph g和其中定义的三角形Triangles。我需要为每个三角形分配一种颜色。但是一个顶点可以是两个或更多个三角形。例如,三角形A8和三角形A13中的顶点(A10, A8, A13)(A2, A8, A13)(左图)。

enter image description here

我的示例代码如下。我在for循环中分配了颜色,一个人只能看到顶点的最后一种颜色。我正在寻找饼形顶点。预期结果在正确的数字中。

Here是相关的问答。

问题。如何为values定义vertex.pie=valuesdegree()函数是否可能?

library(igraph)  



df <- data.frame(
          from = c("A2", "A5", "A5", "A5", "A7", "A7", "A7", "A8", "A8", "A8", "A10", "A10", "A13", "A13", "A13", "A14", "A14", "A14", "A18", "A18", "A18", "A19", "A19", "A19", "A20", "A20", "A20", "A21", "A21", "A21", "A24", "A24", "A24", "A25", "A25", "A25"),
          to   = c("A8", "A20", "A21", "A24", "A20", "A21", "A24", "A2", "A10", "A13", "A8", "A20", "A2", "A8", "A10", "A7", "A19", "A25", "A19", "A20", "A24", "A14", "A20", "A25", "A18", "A21", "A24", "A7", "A20", "A24", "A5", "A7", "A20", "A18", "A19", "A24")
        )



g <- graph.data.frame(d = df, directed = TRUE)

V(g)$color <- "white"

V(g)$id <- c(2, 5, 7, 8, 10, 13, 14, 18, 19, 20, 21, 24, 25)

Triangles <- t(matrix(
c(7,    8,    2,   14,   18,   20,    7,    7,    5,
   21,   10,    8,   19,   20,   21,   20,   20,   20,
   24,   13,   13,   25,   24,   24,   21,   24,   24), ncol=3))

# Create a palette 
n = dim(Triangles)[2] 
palette  <- rainbow(n)

for(i in 1:n){
V(g)[V(g)$id %in% Triangles[,i]]$color=palette[i]
}

coords <- layout_in_circle(g, 
                   order = order(V(g)$id))

plot(g, #edge.curved=TRUE, 
    edge.arrow.size=0.0,
    main   = "Triangles", 
    layout = coords
)

0 个答案:

没有答案