r igraph edge.lty属性不如宣传的那样

时间:2018-03-30 14:29:06

标签: r igraph

线条类型属性lty在为边缘子集设置

时似乎不起作用

我编辑了我原来的例子,这个例子过于简单了。感谢G5W的初步回复。下面的代码捕获了我遇到的问题。

我有一个顶点对矩阵,我想将每个对之间的边缘的lyt值设置为“dotted”(值2)。正如您所看到的,代码适用于color属性,但不适用于lyt属性

library(igraph)

m = matrix( c(1, 10, 7, 8), nrow=2,ncol=2,byrow = TRUE) 

g <- graph.ring(10)

E(g)$color = "black"
E(g)$lty = 1
E(g)$width = 1

for(j in 1:nrow(m)){
  E(g)[m[j,1] %--% m[j,2]]$color <- "indianred"
  E(g)[m[j,1] %--% m[j,2]]$label <- "x"
  E(g)[m[j,1] %--% m[j,2]]$width <- 3
  E(g)[m[j,1] %--% m[j,2]]$lyt <- 2
}
plot(g)
E(g)$lty

您是否知道为什么颜色,宽度和标签属性设置正常,而不是lyt属性?

plot generated by code above

1 个答案:

答案 0 :(得分:2)

问题在于,如果只设置一个这样的值,则其余的值是未定义的。

for

如果您希望大多数边缘是默认值(type = 1)而只需要键入= 2,则首先将它们全部设置为1,然后更改一条边。

g <- graph.ring(10)
E(g)[2]$lty <- 2
E(g)$lty
 [1] NA  2 NA NA NA NA NA NA NA NA

Ring