igraph对象的联盟失去属性

时间:2014-11-12 20:37:27

标签: r igraph

我有两个igraph个对象,它们具有不同的颜色属性。 第一个图表中的顶点"A""B"为红色。 第二个图表中的顶点"AA""BB"为绿色。 加入两者后,不同的颜色会丢失。

library(igraph)

graph.1= graph.data.frame(data.frame(start=c("a", "b"), end=c("A", "B")))
V(graph.1)[name%in% c("A", "B")]$color= "red"

graph.2= graph.data.frame(data.frame(start=c("a", "b"), end=c("AA", "BB")))
V(graph.2)[name%in% c("AA", "BB")]$color= "green"

graph= graph.union.by.name(graph.1, graph.2)

plot(graph)

enter image description here

如何在加入时保留不同的颜色?

1 个答案:

答案 0 :(得分:4)

igraph不会丢失颜色,会将其存储在$color_1$color_2中。我认为这是因为在一般情况下可能存在具有不同颜色的共同顶点。那你会做什么?

试试这个:

V(graph)$color <- ifelse(is.na(V(graph)$color_1),
                         V(graph)$color_2,V(graph)$color_1)
plot(graph)

BTW:你的代码没有为我运行。我不得不使用:

graph <- graph.union(graph.1, graph.2, byname=T)