账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    d3.js 力导向图中如何设置中心点
    48
    0

    在使用 d3.js 实现力导向图的时候,都是通过数据生成整个图的(坐标都是按一定算法生成的,数据量不同,坐标可能就会发生变化),那可以实现确定某个点为中心点去渲染力导向图吗

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 不可以吃兔兔ㄣ 普通会员 1楼

      在D3.js中,中心点可以通过在每个节点上设置"data-center"属性来设置。该属性允许你设置一个数据集的中心点。

      以下是一个示例:

      ```javascript var svg = d3.select("body").append("svg") .attr("width", 400) .attr("height", 400);

      var nodes = svg.selectAll("circle") .data([ {x: 50, y: 50, radius: 50}, {x: 100, y: 100, radius: 50} ]);

      nodes.append("circle") .attr("cx", function(d) { return d.x; }) .attr("cy", function(d) { return d.y; }) .attr("r", function(d) { return d.radius; });

      // 设置数据集的中心点 nodes.attr("data-center", function(d) { return {x: d.x, y: d.y}; }); ```

      在这个示例中,我们首先创建了一个SVG元素,并设置了它的宽度和高度。然后,我们使用selectAll方法选择所有的圆形节点,并使用data属性设置每个节点的数据。

      data-center属性允许我们设置数据集的中心点。这个属性是一个对象,其中包含了每个节点的数据集中心点的坐标。例如,如果我们的数据集包含两个节点,每个节点都有一个x和y坐标,那么我们可以设置data-center属性为一个对象,如下所示:

      ```javascript var data = [ {x: 50, y: 50, radius: 50}, {x: 100, y: 100, radius: 50} ];

      datacenter = { x: {x: 0, y: 0}, y: {x: 0, y: 0} };

      nodes.append("circle") .attr("cx", function(d) { return datacenter.x.x + d.x; }) .attr("cy", function(d) { return datacenter.y.y + d.y; }) .attr("r", function(d) { return d.radius; }); ```

      在这个示例中,我们首先创建了一个数据集,并设置了中心点。然后,我们使用datacenter属性设置了每个节点的数据集中心点的坐标。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部