R igraph:缩放节点大小

时间:2016-11-21 16:48:43

标签: r plot igraph relative

我目前使用以下脚本为中介中心性创建图:

plot(g, 
     rescale = FALSE,
     edge.color= edge_color,
     edge.width=E(g)$Weight*0.5,
     vertex.size= degree(g)*0.5,
     main="Degree Centrality"
)

如您所见,我目前使用简单的乘数来调整vertex.size。由于某些节点非常大而有些节点看起来太小,我想设置一个最小和最大尺寸的范围。当然,该范围应考虑程度(g)。

这有可能吗?

注意:scale (degree(g), 5, 15)或类似的尝试不起作用:"符号错误(x = coords [,1],y = coords [,2],bg = vertex.color ,:   无效的符号参数"

1 个答案:

答案 0 :(得分:3)

要将(a,b)域的数字x重新缩放到(c,d)范围,您需要进行重新缩放功能,如:

rescale = function(x,a,b,c,d){c + (x-a)/(b-a)*(d-c)}

那么如果您的度数大小从0到200,并希望您的顶点大小范围从1到5个单位,请使用以下命令指定顶点大小:

rescale(degree(g), 0, 200, 1, 5)

这只是一个简单的线性变换 - 你可能想要一些非线性的东西来获得更好的视觉效果。

您可能会在某个包中找到rescale函数(例如rescale包中的scales函数),但它不是scale所做的!