在d3力导向布局中优化电荷,linkDistance和重力

Chr*_*son 7 data-visualization social-networking d3.js force-layout

我在过去的国会期间建立了参议院投票模式的强制导向布局.基于将至少75%的时间投票在一起的任何两位参议员连接起来,有102个节点和2,600个边缘:

参议院社交网络

我已经使用了电荷,重力和linkDistance的系数,希望找到一个节点不会过于聚集或人为分离的最佳点.使用linkDistance创建的空间比连接两个集群的四个红色节点之间的逻辑空间大得多.不设置linkDistance会导致两个群集相距很远.

是否有基于边缘密度或任何其他社交网络分析指标选择正确值的指导原则?

当前布局定义是:

var force = d3.layout.force()
    .nodes(d3.values(nodes))
    .links(d3.values(links))
    .size([width - 2 * margin, height - 2 * margin])
    .charge(-80)
    .gravity(0.25)
    .linkDistance(50)
    .on("tick", tick)
    .start();
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新:这在jsFiddle上有点复杂,但可以随意在GitHub上克隆或分叉.

Lar*_*off 7

没有"正确"的值 - 您可能想要选择的值完全取决于您想要显示的内容.

但是,您可以使用一些指标作为指导.的聚集系数是,顾名思义,如何的"分组"的图表的量度是.这是整个图形的属性,但您也可以将其应用于子图(即红色或蓝色点).

节点度的相关度量,基本上计算节点之间的链接.图表还有很多其他属性,例如Lovász数.

这些都不会为您想要设置的参数提供特定值(并且没有任何内容!),但您可能会发现根据这些度量中的某些度量表示这些参数很有用(例如,将链接距离设置为平均节点度数)时间常数).