如何在R中创建精细的色阶,用igraph绘制节点颜色?

时间:2013-05-06 09:56:05

标签: r colors igraph

我正在使用igraph在R上绘制一个小网络(21个节点)。我希望根据矢量postMean对节点进行着色,它具有以下值:

[1] -0.035275268  0.016065216 -0.009860104 -0.110333756  0.027173563

[6]  0.003732149 -0.015728577 -0.015447753 -0.015458429 -0.031747722

[11]  0.050184673  0.052410534  0.025986002  0.059460753  0.044158671

[16] -0.302219356  0.065311113  0.012006393  0.019186883 -0.006812400

[21]  0.196030557

如何调整颜色的比例,以便在数字较小时指示postMean向量的值?我想要一个非常精细的灰度,但我现在似乎能得到的是一些节点是白色的,一些节点是黑色的。

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

您可以使用plotrix包中的rescale()函数将矢量从0重新缩放为1,然后使用gray()函数将这些颜色转换为灰度颜色。

library(igraph)
library(plotrix)
vcol <- gray(rescale(postMean, c(0, 1)))
tkplot(graph, vertex.color=vcol)

如果您不希望颜色范围一直延伸到黑白,则可以缩小重新缩放的值范围,例如:

vcol <- gray(rescale(postMean, c(0.1, 0.9)))