r - 如何在 igraph + R 中保持节点的位置

标签 r igraph

如果我有下图并且我用向量设置节点的位置坐标:

library(igraph)
library(Cairo)

g9<- graph(c(0,1,0,2,0,3,1,4,1,2,3,4,3,5,4,5,5,2),n=6,dir=FALSE)
V(g9)$name<-c(1:6)
V(g9)$label<-V(g9)$name
coords <- c(0, 0, 1.00000000000000, 0,0.500000000000000, 0.866025403784439, 0.300000000000000, 0.200000000000000, 0.441421356237309, 0.341421356237310,0.248236190979496,0.393185165257814)
coords <- matrix(coords, 6,2,byrow=T)
plot(g9,layout=coords)

现在如果我添加以下代码,我必须再次设置坐标布局:
vc<-c(0,1,1,2,2,3,3,1)
gp<-graph(vc,dir=FALSE);
listSub<-graph.get.subisomorphisms.vf2(g9,gp)

m<-matrix(c(unlist(listSub)),length(listSub),length(unique(vc)),byrow=T)
md<-m[!duplicated(m[,1]),]

g<-delete.vertices(g9,c(m[1,2]))

dev.new()

coord <- c(0, 0, 1.00000000000000, 0,0.500000000000000, 0.866025403784439, 0.441421356237309, 0.341421356237310,0.248236190979496,0.393185165257814)
coord <- matrix(coord, 5,2,byrow=T)
plot(g,layout=coord)

如何将这些布局位置设为默认值——以便我可以对图形结构进行修改而不会丢失每个名称的相应位置?

最佳答案

您可以保留初始 coord矩阵
并且只提取子图所需的行。

plot(g9, layout = coords[ V(g9)$name, ])
plot(g , layout = coords[  V(g)$name, ])

关于r - 如何在 igraph + R 中保持节点的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10085046/

相关文章:

regex - R - 从文件中读取行的部分匹配

r - 如何使我的 R 脚本可执行?

Python iGraph - community_infomap 图

r - 使用 ggraph/ggplot2 在网络图中定位节点和边

r - 基于两个变量的dplyr过滤

R根据NA值分割数据帧

在 igraph 中重新连线以获取 niter 参数的 R 含义

r - 使用Ifelse时Igraph无效索引错误

从 ggraph 图中的动态布局中删除孤立节点

mysql - 基于if条件的第二个表中的R sum列