2

RとiGraphは初めてです。列位置#1の頂点を特定の色で表示しようとしています。

私のデータはCSVから取得され、次のようになります。

CL1920  202.80  V66.7   198.89  511.9   799.02  401.9   696.1   388.01  202.80                                                                                                                               
RM119041 331.82 294.10                                                                                                                                                                                       
RM38755 331.82  294.10  276.0   331.0   294.10                                                                                                                   
HK54701 331.82  294.10  276.0   331.0   294.10  401.9   V10.51
....

私のプロットスクリプトは次のようになります。

dat <- read.csv("data.csv", header =F)
g <- graph.data.frame(dat, directed = F)
colCount <- 1+ count.fields("dat.csv", sep = ",")
V(g)$label <- NA
set.seed(10)
par <- par()$mar; par(mar=rep(0, 4))
plot (g, layout = layout.fruchterman.reingold,
      vertex.frame.color = "#FFFFFF",
      vertex.size = 5,
      edge.width = 2.5+ (log(colCount)/max(log(colCount))),
      edge.color = "Grey60")

Vertex.colorの設定に失敗しました。このような例は、デフォルトで「ライトブルー」になっているようです

 V(g)$color <- ifelse (V(g)$V1, "red", "blue")

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

8

datしたがって、(コメントから)目標は、頂点がデータフレームの最初の列に表示されるかどうかに基づいて頂点の色を設定することであるように思われます。方法は次のとおりです。

V(g)$color <- ifelse(V(g)$name %in% dat[,1], "red", "blue")
plot(g)
于 2012-10-30T16:48:45.633 に答える