如何传播或整理网络?

问题描述 投票:0回答:1

我试图扩散或更好地可视化网络。问题是我所拥有的分离株的数量似乎已经扩散到分离株并迫使这些簇进入紧凑的空间,这使得难以看到模式。

有没有人有任何指南来传播集群或更好地可视化数据。如果需要,我可以编辑代码。

谢谢enter image description here

r igraph social-networking
1个回答
1
投票

以下是获得更好布局的两种方法。这两种解决方案只需要一点点实验就可以找到好的设置。首先,由于您没有提供任何数据,我将做一个与您的模糊相似的例子。

library(igraph)
set.seed(1234)
g1 = erdos.renyi.game(100,0.35)
g2= erdos.renyi.game(10,0.35)
G = add_vertices(g1+g2, 50)
LO = layout_with_fr(G)
plot(G, layout=LO, vertex.size=5, vertex.label="")

Poor layout

解决方案#1调整边缘权重 如果您不需要使用边缘权重,则可以将权重设置为较低的值,以便在连接点之间不会产生如此强烈的吸引力。您可能需要尝试找到用于权重的好值。

E(G)$weight = 0.01
LO = layout_with_fr(G)
plot(G, layout=LO, vertex.size=5, vertex.label="")

Better layout through edge weights

解决方案#2直接调整布局 您也可以直接调整布局。

首先,我确定哪些节点的集群太紧。

CM = components(G)$membership
table(CM)

对于我的图表,组件1是我想要扩展的组件。接下来,我只是移动布局,使其以第一个组件的质心为中心。这不会改变图形;它只是让我很容易调整布局。

LO = layout_with_fr(G)
LO[,1] = LO[,1] - mean(LO[CM == 1,1])
LO[,2] = LO[,2] - mean(LO[CM == 1,2])

但现在我可以通过任何给定的扩展因子来增长(或缩小)第一个组件。我选择一个(5.5)来占用大部分空白空间。

LO[components(G)$membership == 1,] = LO[components(G)$membership == 1,] * 5.5
plot(G, layout=LO, vertex.size=5, vertex.label="")

Directly adjusted layout

当然,如果你想回去调整其他组件,你也可以这样做。

© www.soinside.com 2019 - 2024. All rights reserved.