线类型属性 lty 在为边缘子集设置时似乎不起作用
我已经编辑了原始示例,该示例过于简单化。感谢 G5W 的初步回复。下面的代码捕获了我遇到的问题。
我有一个顶点对矩阵,我想将每对之间的边的 lyt 值设置为“点状”(值 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 属性设置不正确吗?
最佳答案
问题是,如果您只设置一个这样的值,则其余值都是未定义的。
g <- graph.ring(10)
E(g)[2]$lty <- 2
E(g)$lty
[1] NA 2 NA NA NA NA NA NA NA NA
如果您希望大多数边为默认值 (type = 1),而只有一条为 type = 2,请首先将所有边设置为 1,然后更改一条边。
E(g)$lty = 1
E(g)[2]$lty <- 2
plot(g)
关于r igraph edge.lty 属性未按宣传的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49576269/