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

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

最佳答案

要将数字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)


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

您可能在某个地方的包中找到了一个rescale函数(例如rescale包中的scales函数),但是scale却没有!

09-13 04:29