减少ggnet2网络图中的空白空间

问题描述

我正在使用 R 和 GGally::ggnet2 绘制下图所示的网络图。

你可以看到有几个相互断开的独立集群,这些集群非常分散,在图中留下了很多空白。是否可以让这些集群彼此靠近从而更好地利用空间?

enter image description here

重现代码

# Get datafile
wget https://www.dropBox.com/s/h4kt2fw1j4hdw3a/matrix.tsv

R
library(Ggally)
library(network)

mat <- read.table('matrix.tsv')
net <- network(mat)
ggnet2(net,size= 1)

解决方法

尝试不同的布局可能会证明是有效的:

library(GGally)
library(network)

ggnet2(net,size= 1,mode = "kamadakawai")

enter image description here

或者您可以使用 layout.par 参数试验特定布局的参数

ggnet2(net,mode = "fruchtermanreingold",layout.par = list(repulse.rad = 100,area = 1000))

enter image description here

有关选项的完整列表,请参阅 ?sna::gplot.layout

要找到令人愉悦的布局,您还需要对选项进行一些试验,因为它们取决于图表。引用部分帮助?sna::gplot.layout

用于网络可视化的顶点布局提出了一个难题—— 没有单一的、“好的”布局算法,还有许多不同的 方法在不同情况下可能很有价值。

set.seed(1234)
ggnet2(net,layout.par = list(repulse.rad = 300,area = 1200))

enter image description here

另一种选择是使用 visNetwork 并在找到一个好的初始布局后手动移动一些顶点