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 に答える