igraph 对象的并集丢失属性

use*_*503 2 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

加入时如何保留独特的颜色?

jlh*_*ard 5

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)
Run Code Online (Sandbox Code Playgroud)

顺便说一句:你的代码不适合我运行。我不得不使用:

graph <- graph.union(graph.1, graph.2, byname=T)
Run Code Online (Sandbox Code Playgroud)