0

我正在使用 visIgraph 在 R 中绘制网络图。顺便说一句,我想将最暗的渐变放在节点数最多的组中,最浅的颜色与最少的节点数。

这是我的示例代码。

dat2<-data.frame(from=c("A",'B','C','E','F','H','J','K','L',
                        "M",'N','P','O','R','S','U'),
                 to=c("B",'D','D','G','G','I','I','I',"I",'N','O','Q','S','T','T','T'))
dat3 <- data.frame(source=dat2$from, dest=dat2$to)
g <- graph.data.frame(dat3)

clust <- clusters(g)
V(g)$color <- ifelse(clust$membership== as.numeric(names(which.max(table(clust$membership)))), "darkblue", "lightblue")

visIgraph(igraph=g,idToLabel=TRUE,layout = "layout_nicely")

在此处输入图像描述

当我应用渐变时,我希望图表看起来像这样。 在此处输入图像描述

4

1 回答 1

0

尝试类似的东西

clust <- clusters(g)

V(g)$color <- ifelse(clust$membership== as.numeric(names(which.max(table(clust$membership))) ), "darkblue", "lightblue")

visIgraph(igraph=g,idToLabel=TRUE,layout = "layout_nicely")

1.编辑多个组和着色顺序

必须添加排序才能根据组大小以正确的顺序进行着色

clust <- clusters(g)

colfunc <- colorRampPalette(c("lightblue", "darkblue"))

colorder <- setNames(c(as.numeric(names(sort(table(clust$membership))))), c(colfunc(clust$no)))

V(g)$color <- names(colorder)[match(clust$membership,colorder)]
于 2018-05-29T17:25:05.330 回答