最初来自合并网络中两个不同网络的关联

时间:2015-05-08 19:40:26

标签: r networking plot igraph

我想合并具有完全相同节点的两个网络。在合并网络中,我想绘制不同原始网络中不同颜色的边缘。以下是我使用igraph和我遇到的问题所做的事情:

我首先将名称设置为两个原始图形,并将类型设置为边缘。

g1 = set.graph.attribute(g1, "name", “AA”)
E(g1)$type = “A”
g2 = set.graph.attribute(g2, "name", “BB”)
E(g2)$type = “B”

然后,我统一了两张图。

g = graph.union(g1, g2, byname=TRUE)

我收到了一个错误:

  

.igraph.graph.union.or.intersection(“R_igraph_union”,...,byname = byname,:     有些图表未命名

事实上,两个原始图都被命名。这里的错误有点奇怪。我继续使用以下代码。现在它有效。

g = graph.union(g1, g2, byname="auto")

这些是我得到的一些结果:

E(g1)
  

边缘序列:   1 5 - 1 [2] 6 - 1 [3] 4 - 2 [4] 6 - 5

E(g2)
  

边缘序列:   1 3 - 2 [2] 6 - 2 [3] 5 - 4 [4] 6 - 4 [5] 6 - 5

E(g)
  

边缘序列:   1 6 - 5 [2] 6 - 4 [3] 5 - 4 [4] 6 - 2 [5] 4 - 2 [6] 3 - 2 [7] 6 - 1 [8] 5 - 1

E(g1)$type
  

1“A”“A”“A”“A”

E(g2)$type
  

1“B”“B”“B”“B”“B”

E(g)$type_1
  

1“A”NA NA NA“A”NA“A”“A”

E(g)$type_2
  

1“B”“B”“B”“B”NA“B”NA NA

我尝试使用以下代码绘制红色类型为“A”的边缘,蓝色类型为“B”的边缘。

plot(g, edge.color=ifelse(E(g)$type_1=="A","red","blue"))

enter image description here

它只是用“B”类型绘制边缘。为什么它用“A”型绘制边缘?这些代码有什么问题?

我也很好奇是否有办法将联合图的edge属性的名称保持为“type”。在这里,它会自动将名称更改为“type_1”和“type_2”,这两个属性。如果保留名称,一些边将是“A”类型,来自“B”,有些将是“A”和“B”(例如在这种情况下为边缘5 - 6)。这可能会更容易以不同的颜色绘制边缘。

任何帮助将不胜感激。提前谢谢!

0 个答案:

没有答案