合并不同的网络并为其提供不同的颜色

时间:2015-10-08 08:55:16

标签: r social-networking igraph

我想要合并11个不同的网络(UN)。我希望一个网络中的每个节点都应该用与其他网络相同的颜色,不同的颜色来表示,以便我可以识别哪个交互属于哪个网络。我正在使用以下代码逐个合并网络。

graph.union.by.name = function(g1, g2)
{
stopifnot(is.directed(g1) & is.directed(g2))
dv1 = get.vertices.as.data.frame(g1)
dv2 = get.vertices.as.data.frame(g2)
de1 = get.edges.as.data.frame(g1)
de2 = get.edges.as.data.frame(g2)
dv = safer.merge(dv1, dv2, all=TRUE)
de = safer.merge(de1, de2, all=TRUE)
g  = graph.data.frame(de, directed=FALSE, vertices=dv)
return(g)
}
graph.union.by.name(g1,g2)
  1. get.edges.as.data.frame:此函数将图形边缘作为可合并的data.frame
  2. 返回
  3. graph.union.by.name:此函数创建两个图的并集。此函数根据名称属性正确地对图形进行联合,例如:g1或g2中的任何顶点都位于结果中的结果中的任何顶点g1或g2中。
  4. get.vertices.as.data.frame:此函数将图形顶点作为data.frame
  5. 返回
  6. safer.merge:此函数检查一些可能导致错误合并结果的非常基本的陷阱,然后使用合并功能进行合并。
  7. 我的问题是:

    1. 1:如何在网络中添加颜色,以便我可以识别每个颜色 交互(仅供参考:有一些节点和交互 这些网络中常见的)?
    2. 2:最终我必须将这个最终网络(包括11个合并网络)与其他网络(比如网络X)进行比较(或合并),我想知道合并网络中的哪个网络,网络X最相似的。
    3. 3:是否可以建立定向网络并进行上述分析。如果是,那么有向网络将包含节点交互的信息,如下所示:node A --> node B(这意味着节点A激活节点B)或node A --| node B(这意味着节点A禁止节点B)`。那么也可以在网络中添加这些信息吗?目前为了简单起见,我正在考虑无向网络,但我最终的目标是考虑有针对性的网络。
    4. 示例:

      library(igraph)
      g1 <- graph.formula(a-b-c)
      g2 <- graph.formula(b-c-d)
      graph.union.by.name(g1,g2)
      

      我希望g1g2的节点颜色不同,然后我将为所有网络应用不同的颜色。

0 个答案:

没有答案