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 回答