r IGRAPHE-查找连接选定节点的边

r IGRAPHE-查找连接选定节点的边,r,igraph,R,Igraph,我需要突出显示绘图中选定的节点,整个图形作为半透明背景。在plot中,我可以轻松地ifelse位于所选节点列表内部或外部的顶点,以区分它们的颜色。但我还不能对边缘做同样的处理。如何索引连接选定节点的边 x <- make_ring(10) get.edge.ids(x, c(1,2)) x好的,我找到了解决办法。不确定这是否是最优雅的解决方案,但它确实有效。如果查看igraph.es对象内部,名称将以“name1 | name2”的形式存储。因此,您可以导出一个子图,该子图只包含选定的垂

我需要突出显示绘图中选定的节点,整个图形作为半透明背景。在
plot
中,我可以轻松地
ifelse
位于所选节点列表内部或外部的顶点,以区分它们的颜色。但我还不能对边缘做同样的处理。如何索引连接选定节点的边

x <- make_ring(10)
get.edge.ids(x, c(1,2))

x好的,我找到了解决办法。不确定这是否是最优雅的解决方案,但它确实有效。如果查看
igraph.es
对象内部,名称将以“name1 | name2”的形式存储。因此,您可以导出一个子图,该子图只包含选定的垂直方向,然后将其转换为edgelist,然后应用带有“|”折叠的列合并,这将为您提供所需的“name1 | name2”格式的边。然后为目标边创建边颜色属性

x <- make_ring(10)
V(x)$name <- LETTERS[1:10]
target <- V(x)[1:5]$name
target <- as_edgelist(induced.subgraph(x, target))
target <- apply(target, 1, function(z) paste(z, collapse = "|"))
E(x)$color <- "blue"
E(x)[target]$color <- "red"
plot(x, edge.color = E(x)$color)

x函数
E
V
有许多迭代器和子集函数,如下所述:

例如,要获取连接到顶点1的所有边,可以执行以下操作:

library(igraph)
x <- make_ring(10)
E(x)$color <- "black"
E(x)[adj(1)]$color <- "red"
plot(x)
库(igraph)

x看起来不错,但它包含的边太多了。是否有一种方法可以只索引连接两个节点的边,而不是索引与这些节点相邻的所有边?
eids <- all_shortest_paths(x, 1, 4, "all")
E(x)$color <- "black"
E(x)[ eids$res[[1]] %--% eids$res[[1]] ]$color <- "red"
plot(x)