我是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失败了。像这样的例子似乎默认为“lightblue”
V(g)$color <- ifelse (V(g)$V1, "red", "blue")
有人能指出我正确的方向吗?
答案 0 :(得分:6)
所以(从评论中)看来,目标是根据顶点是否出现在dat
数据框的第一列中来设置顶点颜色。这是一种方式:
V(g)$color <- ifelse(V(g)$name %in% dat[,1], "red", "blue")
plot(g)