5

我创建了以下图表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")

在此处输入图像描述

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

在此处输入图像描述

是否有其他方法可以在显示所有顶点的同时简单地控制哪些边可见?谢谢

4

1 回答 1

6

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

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

我用以下方法制作了那个颜色编号:

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

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

于 2012-08-22T19:34:33.483 回答