Javascript D3可缩放树映射调整大小

Javascript D3可缩放树映射调整大小,javascript,d3.js,treemap,Javascript,D3.js,Treemap,我试图在调整窗口大小时调整树状图的大小时遇到一些问题: 我从这个例子开始: 这是我的resize()函数,我只需删除图,重新定义div#图的宽度和高度,然后重新运行上面链接中的init代码。(drawGraph()执行d3树映射工作,json是包含数据的全局变量): 这里的问题是:图形被正确地重新绘制,但没有任何子对象!我的树状图的高度为3,调整大小后,所有节点都变成了叶子 解决方案 我编辑了累积功能: function accumulate(d) { if (d.

我试图在调整窗口大小时调整树状图的大小时遇到一些问题: 我从这个例子开始:

这是我的resize()函数,我只需删除图,重新定义div#图的宽度和高度,然后重新运行上面链接中的init代码。(drawGraph()执行d3树映射工作,json是包含数据的全局变量):

这里的问题是:图形被正确地重新绘制,但没有任何子对象!我的树状图的高度为3,调整大小后,所有节点都变成了叶子

解决方案
我编辑了
累积
功能:

    function accumulate(d) {      
    if (d._children === undefined) {
       return (d._children = d.children)
        ? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)
        : d.value;
    } else {
        return d.value;
    }

  }
在窗口调整大小事件中,我更新svg元素的宽度和高度并重新执行:
initialize()
accumulate()
layout()
display()

那么,你找到解决办法了吗?我也面临着同样的问题。我编辑了
累积
函数:您对它做了哪些更改?
    function accumulate(d) {      
    if (d._children === undefined) {
       return (d._children = d.children)
        ? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)
        : d.value;
    } else {
        return d.value;
    }

  }