2016-11-21 214 views
0

我目前使用下面的脚本来创建中介中心一个情节:[R的igraph:缩放节点大小

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,: 无效符号参数”

回答

3

重新调整数x,用的域(A,b)你需要做一个缩放功能就像一个范围(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) 

这只是一个简单的线性转换 - 您可能想要更好的视觉效果非线性。

你可能会(在scales包像rescale功能)的地方找到一个包rescale功能,但它不是什么scale呢!

+0

这有帮助,谢谢! – Rnaldinho