我正在尝试更改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个中间值的向量,我想绘制一个图形,其颜色的渐变遵循中介值(例如,从最低值的红色到绿色到最高值)。我猜我必须弄乱顶点的属性,但我不知道如何输入矢量作为颜色属性。
答案 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稍后会产生错误。