d3.js - d3js如何通过集群非强制布局收集节点?

标签 d3.js force-layout

我有网络,每个节点都有一个通过聚类方法获得的属性组。我想知道在空间中聚集属于同一组的节点的强制布局渲染网络的最佳方法是什么?

一种方法,但我不知道如何实现它,是在同一组的节点之间添加吸引力(与应用于所有节点的排斥力相比很小)。

最佳答案

一种可能性是在nb_group 方向上分配空间,并在分配给它们的组的方向上推送节点:

   var angle = 2*Math.PI/nb_group;
   var intensity = 500;

    var updateNode = function() {
    this.attr("transform", function(d) {
        var xm = d.x + intensity*Math.cos(angle*d.group);
        var ym = d.y + intensity*Math.sin(angle*d.group);
        return "translate(" + xm + "," + ym + ")";
    });
    }

我的 intensity 很大,因为我有 1000 的电量 enter image description here

关于d3.js - d3js如何通过集群非强制布局收集节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141124/

相关文章:

javascript - 如何在具有缩放功能的时间轴中的 d3 v4 中添加过滤器或 ScaleExtent

d3.js - 基础数据更改时如何更新D3元素的布局

javascript - 将鼠标悬停弹出窗口添加到 d3 树叶

javascript - 如何使用 d3 中的图像创建堆积条形图

javascript - 与更新/输入的元素交互

javascript - 在 D3JS 中更新文本标签

javascript - 与 D3.js 交互作用力

d3.js - d3js (v4) Canvas 强制布局在节点上带有文本

d3.js - 强制蜂群图 - 添加节点链接

javascript - 使用 d3js 在螺旋图中添加圆圈,线连接到中心