根据它们的中心性着色顶点

时间:2014-11-18 21:13:28

标签: r attributes igraph vertex

我正在尝试更改igraph生成图中顶点的颜色。 更具体地说,我有一个从邻接矩阵创建的95节点图,我想根据它们的度/中间性/特征值中心性/亲密度对它们进行着色,但是我猜想在我知道如何用一个,我将能够与其他人一起做。

所以到目前为止我已经编写了图形生成的基础知识:

  

dataset< - read.csv(“〜/ Google Drive / Cours M2 / Network Economics / Data / Collabs_2013.csv”,sep =“;”)
  矩阵< -as.matrix(数据集)
  ADJ< -graph.adjacency(矩阵)
  剧情(形容词)
  btw< -betweenness(adj,directed = FALSE)

我现在有一个95个中间值的向量,我想绘制一个图形,其颜色的渐变遵循中介值(例如,从最低值的红色到绿色到最高值)。我猜我必须弄乱顶点的属性,但我不知道如何输入矢量作为颜色属性。

2 个答案:

答案 0 :(得分:5)

好像你已经完成了大部分工作。您只需知道colorRamppalette并为网络设置vertex.color即可。假设你必须线性改变颜色,

只是做

fine = 500 # this will adjust the resolving power.
pal = colorRampPalette(c('red','green'))

#this gives you the colors you want for every point
graphCol = pal(fine)[as.numeric(cut(btw,breaks = fine))]

# now you just need to plot it with those colors
plot(adj, vertex.color=graphCol)

this。在回答这个问题之前,我正在使用一种效率更低的方法来分配颜色。

答案 1 :(得分:3)

请注意:

定义

可能会有问题
palette = colorRampPalette(c('blue','green'))

作为'调色板'功能,也被igraph使用,因此igraph稍后会产生错误。

查看问题Color pallette for vertices in igraph network in R