R igraph:缩放节点大小

3
我目前使用以下脚本创建介数中心性的绘图:

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

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。由于有些节点非常大,而有些看起来太小,因此我想设置一个范围,包括最小值和最大值。当然,这个范围应该考虑到degree(g)。
这种方法可行吗?
注意:尝试使用scale(degree(g),5,15)等类似方法没有起作用:"symbols(x=coords[,1],y=coords[,2],bg=vertex.color,:无效的符号参数"。
1个回答

7
为了将定义域为(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)

这只是一个简单的线性转换 - 为了更好的视觉效果,您可能需要一些非线性的内容。您可能会在某个包中找到一个“重新缩放”函数(例如“scales”包中的“rescale”函数),但这不是“scale”的作用!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接