代码之家  ›  专栏  ›  技术社区  ›  Conchuir

r igraph边缘。lty属性未按播发的方式工作

  •  2
  • Conchuir  · 技术社区  · 7 年前

    为边子集设置线型属性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
    

    您知道为什么颜色、宽度和标签属性设置为ok,而不是lyt属性吗?

    plot generated by code above

    1 回复  |  直到 7 年前
        1
  •  2
  •   G5W    7 年前

    问题是,如果只设置一个这样的值,那么其余的值都是未定义的。

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

    如果希望大多数边都是默认的(类型=1),而只有一条边是类型=2,请首先将所有边都设置为1,然后更改一条边。

    E(g)$lty = 1
    E(g)[2]$lty <- 2
    plot(g)
    

    Ring