问题描述
我从数据框创建图形。而且我希望根据data.rw$Hamming.
我需要帮助
data.rw <- structure(list(g1 = c(1,1,2,3,4,5,6,7,8,9,10,11,12),g2 = c(2,12,13,13),Hamming = c(116,86,101,92,84,78,83,102,87,100,96,97,90,111,98,114,95,108,104,109,85,74,68,60,67,71,79,91,72,66,77,82,62,59,88,81,63,73,75,89,94,93,91)),row.names = c(NA,-78L),class = "data.frame")
set.seed(1234)
vertice.df <- unique(c(data.rw$name1,data.rw$name2))
g <- graph_from_data_frame(d = data.rw,vertices = vertice.df,directed = F)
plot(g)
解决方法
对于此任务,我建议使用基于距离的布局,然后想到多维缩放:
m <- get.adjacency(g,attr = "Hamming",sparse = F)
# optionally: m <- dist(m)
l <- layout_with_mds(g,dist = m,dim = 2)
首先从图中提取加权邻接矩阵,并将其输入到布局函数(dist = m
)中。这将返回一个二维矩阵l
(dim = 2
),您可以将其用作节点位置的布局。
plot(g,layout = l)
如果您对MDS感兴趣,请查看?cmdscale
,尤其是eig
参数,以便以后评估拟合优度。二维可能不足以充分反映节点之间的距离。但这是您要决定的。