我正在使用R
中的igraph
库。我使用函数mst基于存储在名为tree
的 Dataframe 中的距离函数创建了一个MST图:
gf <- graph_from_data_frame(tree, directed = FALSE)
mstgf <- mst(gf, weights = tree$distance)
我已经计算了MST中每个节点的特征向量中心度:
ec <- eigen_centrality(mstgf, directed=T, weights=NA)$vector
然后,我将特征向量中心的向量加入data.frame树:
x <- cbind(names(ec), as.numeric(ec)) %>% as_tibble() %>% mutate(V2 = as.numeric(V2)) %>%
rename(from = V1)
tree <- tree %>% inner_join(.,x, by = "from")
我想做的是绘制MST,通过对节点着色,以类似于它们的特征向量中心性。我正在使用下面的绘图,但我不知道如何更改参数vertex.color
以获得类似于下图的内容?
plot.igraph(mstgf,
vertex.color = round(tree$V2,0),
edge.color = "blue",
edge.curved = TRUE,
edge.witdh = 1,
)
1条答案
按热度按时间c2e8gylq1#
一旦你计算了你选择的中心,你想1)将值缩放到一个有意义的分类范围(如1,2,3,4,5),2)将你的中心类别与渐变中的颜色相关联。你不必在igraph之外继续连接和计算。
这是一个随机网络
1)制作分类
这迫使每个特征向量中心性假设为1到10之间的整数值
你可以使用任何你喜欢的分辨率。
2)附上索引中的颜色
有几个包和方法可以在R中加载颜色范围(colorspace,colorRamps,RColorBrewer等)。
这个例子应该会产生一些沿着于这个图的东西: