希望节省 coordinates/layout 以使用 DRL 在 Igraph 中制作时间网络
Looking to save coordinates/layout to make temporal networks in Igraph with DRL
我想在 R 中创建时间网络,但我找到的唯一资源适用于 FR 或 KK 图。但是,我想作为布局基础的主要图表是 DRL 布局。我如何在 R 中对此进行编码以保持布局?
谢谢
已添加:
代码:
drl <- layout.drl(netfull, options=list(simmer.attraction=0))
plot(netfull, edge.arrow.size=2, vertex.size=.5, vertex.label.cex=.3, vertex.label.dist=.1, vertex.lable.degree=pi, layout=drl)
plot(net7, edge.arrow.size=2, vertex.size=.5,vertex.label.cex=.3, vertex.label.dist=.1, vertex.lable.degree=pi, layout=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 以及相应的节点。这个额外的回应解决了这个问题。
Start with the example above to create the graph g and the layout 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个原始节点的位置。我们只想 select 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)
我想在 R 中创建时间网络,但我找到的唯一资源适用于 FR 或 KK 图。但是,我想作为布局基础的主要图表是 DRL 布局。我如何在 R 中对此进行编码以保持布局?
谢谢
已添加:
代码:
drl <- layout.drl(netfull, options=list(simmer.attraction=0))
plot(netfull, edge.arrow.size=2, vertex.size=.5, vertex.label.cex=.3, vertex.label.dist=.1, vertex.lable.degree=pi, layout=drl)
plot(net7, edge.arrow.size=2, vertex.size=.5,vertex.label.cex=.3, vertex.label.dist=.1, vertex.lable.degree=pi, layout=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 以及相应的节点。这个额外的回应解决了这个问题。
Start with the example above to create the graph g and the layout 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个原始节点的位置。我们只想 select 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)