控制哪些边在r中的igraph中的网络图中可见

时间:2012-08-22 19:08:27

标签: r colors igraph vertices edges

我在igraph

中创建了以下图表
set.seed(1410)
df<-data.frame(
"site.x"=c(rep("a",4),rep("b",4),rep("c",4),rep("d",4)),
"site.y"=c(rep(c("e","f","g","h"),4)),
"bond.strength"=sample(1:100,16, replace=TRUE))

library(igraph)
df<-graph.data.frame(df)
V(df)$names <- c("a","b","c","d","e","f","g","h")
layOUT<-data.frame(x=c(rep(1,4),rep(2,4)),y=c(4:1,4:1))
E(df)[ bond.strength < 101 ]$color <- "red"
E(df)[ bond.strength < 67 ]$color <- "yellow"
E(df)[ bond.strength < 34 ]$color <- "green"
V(df)$color <- "white"
l<-as.matrix(layOUT)
plot(df,layout=l,vertex.size=10,vertex.label=V(df)$names,
edge.arrow.size=0.01,vertex.label.color = "black")

enter image description here

我想显示所有顶点/节点,但只显示bond.strength&gt;的边缘。 34(即只有红色和黄色边缘)。我可以通过设置bond.strength&lt;来控制它。 34白色,但在我的实际数据集上完成时并不漂亮,因为白色边缘“穿过”其他边缘,即

enter image description here

在显示所有顶点时,还有其他方法可以简单地控制哪些边可见吗?感谢

1 个答案:

答案 0 :(得分:5)

我想知道如果你将线条的颜色设置为透明会发生什么,例如:

E(df)[ bond.strength < 34 ]$color <- "#FF000000"

我用以下颜色编号了这个颜色编号:

 hsv(1,1,1,alpha=0)

或者,你可以进入并从边缘列表中省略它们。