Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在图的绘图上突出显示最短路径_R_Shortest Path_Igraph - Fatal编程技术网

R 在图的绘图上突出显示最短路径

R 在图的绘图上突出显示最短路径,r,shortest-path,igraph,R,Shortest Path,Igraph,我试图找到一种方法来突出显示我的图表上的一些最短路径。 我试图将get.shortest.paths的输出自动应用到E()的path=函数中,但数据结构似乎是错误的。见下文: ################################################################### g <- graph.ring(10,directed=TRUE) plot(g) ShortPth <- get.shortest.paths(

我试图找到一种方法来突出显示我的图表上的一些最短路径。 我试图将get.shortest.paths的输出自动应用到E()的path=函数中,但数据结构似乎是错误的。见下文:

###################################################################
g <- graph.ring(10,directed=TRUE)               
plot(g)
ShortPth <- get.shortest.paths(g, 8, 2)    # List of path 8->2
ShortPth
E(g)$color <- "SkyBlue2"
E(g)$width <- 1
E(g, path=ShortPth)$color <- "red" 

### setting edges by path= is failing !!!!!!!!!!
plot(g)
###################################################################

我想你只是漏掉了几个括号。
path
参数需要一个数字向量,但
ShortPth
是一个列表。因此,您可以通过键入
ShortPth[[1]]
请尝试以下操作:

E(g, path=ShortPth[[1]])$color <- "red"
plot(g)

您也可以使用mathematica和函数ShortestPathFunction[]轻松完成此操作

对于列表,您需要
[[
来获得单个元素。
[
创建子列表。在当前的igraph版本中,我仅在寻址vpath列表E(g,path=ShortPth$vpath[[1]])$color@jcarlos后获得。感谢您指出这一点。编辑并进一步查看它。
E(g, path=ShortPth$vpath[[1]])$color <- "red"
E(g, path=unlist(ShortPth$vpath))$color <- "red"
E(g, path=unlist(ShortPth[[1]]))$color <- "red"

ShortPth$vpath[[1]]  # class "igraph.vs"
# + 5/10 vertices:
# [1]  8  9 10  1  2
unlist(ShortPth$vpath)
# [1]  8  9 10  1  2