D3.V4(一)——可伸缩树图

D3.js绘制可伸缩树图步骤:

1. 定义树图布局方式

let tree = d3.tree()
    .size([height, width]);

2. 对原始数据进行处理

这里对根节点的位置进行了调整,heat_padding是图与边框的距离

let tree = d3.tree()
        .size([height, width]);

    let root = d3.hierarchy(treeData, function (d) {
        return d.children;
    });
    rootData = tree(root);
    root._x = height / 2;
    root._y = heat_padding.left;

3. 绘制树图

3.1 节点、连线绘制

整体思路是:首先将整体树图数据进行占位,然后进行对占位的节点进行绘制。圆滑的绘制是先把所有节点的位置定位在根节点出,然后采用动画过渡的方式移动到节点应该在的位置。节点之间的连线也是这样。

3.2 节点、连线删除

删除先是对数据进行处理,将收缩的节点的子节点删除,由于D3将数据与页面元素绑定在一起,对数据的操作可以看作是对页面元素的操作。然后就是常规的删除操作,这里就不在详述了。

来看整体的代码:

function update(source) {
    let svg = d3.select("#heat_svg");

    let nodes = rootData.descendants(),
        links = rootData.descendants().slice(1);

    nodes.forEac
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值