希望保存坐标/布局以使用DRL在Igraph中创建时间网络

希望保存坐标/布局以使用DRL在Igraph中创建时间网络,r,networking,igraph,temporal,R,Networking,Igraph,Temporal,我想在R中创建时态网络,但我发现的唯一资源是FR或KK图。但是,我想从中创建布局的主要图形是DRL布局。如何在R中编写此代码以保持布局 多谢各位 增加: 代码: drl您可以在打印之前显式计算布局,然后在需要打印时使用layout参数。DRL是igraph提供的标准选项之一 library(igraph) ## create test graph set.seed(1234) g = erdos.renyi.game(15, 0.2, type = "gnp") ## Create a re

我想在R中创建时态网络,但我发现的唯一资源是FR或KK图。但是,我想从中创建布局的主要图形是DRL布局。如何在R中编写此代码以保持布局

多谢各位

增加:

代码:


drl您可以在打印之前显式计算布局,然后在需要打印时使用
layout
参数。DRL是igraph提供的标准选项之一

library(igraph)

## create test graph
set.seed(1234)
g = erdos.renyi.game(15, 0.2, type = "gnp")

## Create a reusable layout for the graph
LO = layout_with_drl(g)

## plot using the layout
plot(g, layout=LO)

编辑 根据评论中的讨论,我对这个问题有不同的理解。我认为问题在于:给定一个图g和一个子图g2,同时打印g和g2,相应的节点在同一个位置。这个额外的响应解决了这个问题

从上面的例子开始创建图g和布局LO

现在,我们要获取一个子图,并将其与相同位置的相应节点一起打印。我将使用移除节点2、9和15得到的图作为示例

如果我们简单地删除这些节点,新图将有12个节点,它们的节点ID为1-12。为了保留原始编号,我们需要将节点ID保存为标签

V(g)$label = 1:15
现在,让我们通过删除节点2、9和15来创建子图

g2  = induced_subgraph(g, V(g)[-c(2,9,15)])
我们希望重用布局LO,但LO具有所有15个原始节点的位置。我们只想为g2中的其余节点选择零件

LO2 = LO[-c(2,9,15),]
现在我们准备绘制原始图和简化图,以便节点对齐

par(mfrow=c(1,2), mar=c(2,1,2,1))
plot(g, layout=LO, frame=TRUE)
plot(g2, layout=LO2, frame=TRUE)

我目前遇到布局不变但节点位置发生变化的问题。我怎样才能解决这个问题?我刚上传了图片你每次都用drl(g)
代码重新运行
布局吗?你只能跑一次。如果没有,请发布您的代码或修改我的代码,以给出您看到的示例。在我看来,节点在两个图中的位置相同。第二个图中的边看起来不连贯,但两个图中的节点看起来都位于同一位置。是的,节点布局相同,但实际节点与第一个图中的节点不在同一位置(例如,第二个图中的节点1不在同一位置),导致边缘不连贯,两个图的节点顺序必须不同。你能为图1和图2举个小例子吗?
par(mfrow=c(1,2), mar=c(2,1,2,1))
plot(g, layout=LO, frame=TRUE)
plot(g2, layout=LO2, frame=TRUE)