gpt4 book ai didi

r - 基于社区更改 IGraph 图中的布局结构

转载 作者:行者123 更新时间:2023-12-05 03:10:55 25 4
gpt4 key购买 nike

我创建了一个标识了社区成员的 igraph:

fc <- fastgreedy.community(graph)
colors <- rainbow(max(membership(fc)))

这为我提供了每个节点所属的集群。

现在当我绘制这个时:

plot(graph,vertex.color=colors[membership(fc)], 
layout=layout.kamada.kawai)

它不提供根据成员资格专门分隔每组节点的布局。有谁知道可以提供这个的不同布局?所有这一切都是采用布局:kamada.kawai 并在成员(member)中着色,而不是重组布局,以便按成员(member)进行组织。

希望这个问题是有道理的。谢谢!

最佳答案

您必须使用人工权重向量来计算 Kamada-Kawai 布局,该权重向量将高权重分配给集群内的边,并将低权重分配给跨集群边界的边:

> graph <- grg.game(100, 0.2)                 # example graph
> cl <- fastgreedy.community(graph)
> weights <- ifelse(crossing(cl, graph), 1, 100)
> layout <- layout_with_kk(graph, weights=weights)
> plot(graph, layout=layout)

这里的技巧是 ifelse(crossing(cl, graph), 1, 100) 部分——crossing(cl, graph) 进行聚类和图聚类所属,并返回一个 bool 向量,该向量为每条边定义该边是否跨越聚类边界。 ifelse() 调用然后简单地用 1 和 FALSE 替换此向量中的 TRUE(即边缘交叉边界)(即边缘留在簇内) 与 0.

关于r - 基于社区更改 IGraph 图中的布局结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38194960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com