【问题标题】:R: "connecting" graphsR:“连接”图
【发布时间】:2021-03-07 21:19:34
【问题描述】:

使用 R,我创建并绘制了一个图表:

library(igraph)
library(igraphdata)
data(karate)

#cluster
cfg <- cluster_fast_greedy(karate)

#plot entire graph
plot(cfg, karate)

#plot first subgraph

a = induced_subgraph(karate, cfg[[1]])
plot(a)

#plot second subgraph

b = induced_subgraph(karate, cfg[[2]])
plot(b)

#plot third subgraph

c = induced_subgraph(karate, cfg[[3]])
plot(c)

是否可以编写一些代码来显示哪个图连接到哪个图?

示例:绿色图形连接到橙色和紫色。紫色图表仅连接到绿色图表。橙色图连接到绿色图

(“a”为橙色图,“b”为绿色图,“c”为紫色图)

b : c 和 a

c: b

a:b

【问题讨论】:

  • 他的回答很棒。我发布了另一个关于使用社区检测与常规聚类(例如 k 均值)的理想情况的问题。如果你有时间,你能看一下吗? stackoverflow.com/questions/64849921/…谢谢

标签: r graph data-visualization nodes


【解决方案1】:

对于二元情况,问题是社区之间是否存在联系,您可以执行以下操作。首先,根据社区成员(属于“a”、“b”或“c”)签约社区。​​p>

V(karate)$mem <- membership(cfg)
g <- contract.vertices(karate, V(karate)$mem, vertex.attr.comb = "ignore")

其次,去除循环和多重边:

g <- simplify(g)

最后,提取相邻节点(在上面收缩之后现在等于社区):

sapply(1:vcount(g), function(x) adjacent_vertices(g, x)) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多