R 图 : Scaling node size

标签 r plot 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。由于有些节点非常大,有些节点看起来太小,我想设置一个最小和最大尺寸的范围。当然,这个范围要考虑degree(g)。

这有可能吗?

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

最佳答案

要将域为 (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 函数(例如 scales 包中的 rescale 函数),但它不是什么 scale 可以!

关于R 图 : Scaling node size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40725269/

相关文章:

r - 根据包含列名的输入向量过滤数据框

r - 如何在直方图上绘制真实密度(对于指定的 Gamma 分布)

r - 如何在 Shiny 中验证上传的 csv

r - 从 R 导出绘图并增加大小?

r - 在 R 中绘制多组点

r - igraph delete_edges 行为异常

r - 选择包含特定叶子的子图(igraph)

r - igraph中的子组件失败

r - 可以使用经过验证的模型来预测整个数据集吗?

r - 在 R 中绘制回归线