如何在不更改绘图位置的情况下从igraph中删除顶点

blJ*_*JOg 4 r igraph

我有一个包含100个顶点的图形g,我想从这个图形中删除多个顶点以获得g1,但是当我这样做时,我希望保留每个顶点在g中的位置.是否有可能做到这一点?

par(mfrow=c(1,2))
g <- erdos.renyi.game(100, 1/100)
comps <- clusters(g)$membership
colbar <- rainbow(max(comps)+1)
V(g)$color <- colbar[comps+1]
V(g)$size<-seq(0.05,5,0.05)
plot(g, layout=layout.fruchterman.reingold, vertex.label=NA)

g1<-g - c("1","2","7","10")
plot(g1, layout=layout.fruchterman.reingold, vertex.label=NA)
Run Code Online (Sandbox Code Playgroud)

我想到的一个工作,将是我用白色着色我不再想看到的顶点和边缘,但在开始这条路线之前,我想知道是否有一些不那么黑客的东西.

jos*_*ber 6

您可以从绘图中保存布局位置g:

locs <- layout.fruchterman.reingold(g)
plot(g, layout=locs, vertex.label=NA)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然后,您可以在绘图时重复使用它们g1,删除已删除节点的位置:

g1<-g - c("1","2","7","10")
plot(g1, layout=locs[-c(1, 2, 7, 10),], vertex.label=NA)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述