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