【发布时间】:2019-08-28 04:35:34
【问题描述】:
我正在尝试在 R 中绘制一个时间社交网络。我的方法是为所有节点创建一个主图和布局。然后,我将根据一系列顶点 ID 对图进行子集化。但是,当我这样做并布局图形时,我会得到完全不同的节点位置。我想我要么错误地对布局矩阵进行了子集化。我找不到问题出在哪里,因为我已经完成了一些较小的矩阵子集,而且一切似乎都运行良好。
我在网络图中有一些示例代码和问题图像。
library(igraph)
# make graph
g <- barabasi.game(25)
# make graph and set some aestetics
set.seed(123)
l <- layout_nicely(g)
V(g)$size <- rescale(degree(g), c(5, 20))
V(g)$shape <- 'none'
V(g)$label.cex <- .75
V(g)$label.color <- 'black'
E(g)$arrow.size = .1
# plot graph
dev.off()
par(mfrow = c(1,2),
mar = c(1,1,5,1))
plot(g, layout = l,
main = 'Entire\ngraph')
# use index & induced subgraph
v_ids <- sample(1:25, 15, F)
sub_l <- l[v_ids, c(1,2)]
sub_g <- induced_subgraph(g, v_ids)
# plot second graph
plot(sub_g, layout = sub_l,
main = 'Sub\ngraph')
第二个图中的顶点应该与第一个图中的顶点布局相匹配。
【问题讨论】: