r - 删除 R 中的节点并固定图形的布局

标签 r igraph

我尝试创建网络布局的图片(以最终说明网络如何随时间演变)。我的方法是创建一个最终网络(参见 net0),然后逐个节点(及其边缘)删除。

如何确保图表的布局保持不变? (并且不重新缩放!) 最终目标:具有不同节点数但与最终图 net0 中定义的布局完全相同的图序列

我的方法:

  1. 将相同的布局添加到简化的网络图中会得到相同的布局,但之前删除的节点不会消失
  2. 只采用原始布局的一个子集,但随后我的图表会重新缩放。

代码:

library(igraph)
data <- structure(c( "A","A","D","D","F","G","B","B","D","G","D","G","G","F","H","H","G","D","I","I"),.Dim = c(10L, 2L), .Dimnames = list(NULL,c("source","target")))
layout <-structure(c(-3.26,-5.50,-2.33,0.48,-3.37,-7.44,-10.00,-8.32,-5.09,-5.19,-3.15,-2.22,-1.9,-4.00),.Dim = c(7L, 2L), .Dimnames = list(NULL, c("coordinate.1", "coordinate.2")))


net0 <- graph.edgelist(data, directed=FALSE) 
par(pin=c(9, 4.7), mai=c(0.5, 0.1, 0.15, 0.1))

plot(net0, layout=layout)

net <- delete.edges(net0, c(9,10))
net <- delete.vertices(net, c("I")) 
plot(net, layout=layout)

net <- delete.edges(net0, c(9,10)) 
net <- delete.vertices(net, c("I")) 
plot(net, layout=layout[1:6,])

最佳答案

将布局添加为 xy 顶点属性:

V(net0)$x <- layout[,1]
V(net0)$y <- layout[,2]

这些由 plot() 自动使用,参见 ?layout.auto,默认布局。

关于r - 删除 R 中的节点并固定图形的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22352819/

相关文章:

r - 如何使用R从具有多列的数据框中计算(共)发生矩阵?

python - 在 Mac El Capitan 上安装 python-igraph 时出现问题

Python igraph : get all possible paths in a directed graph

r 从数据框中的列创建邻接矩阵

r - 识别一行中不同元素数量的有效方法

r - 使用 git/github 对 R 包进行版本控制?

r - 在行尾绘制标签

r - 计算注册前访问的平均页面数

r - 仅从匹配字符串的列中提取数据

javascript - forceNetwork 不是零索引的