0

这实际上是一个奇怪的问题。我正在研究这个https://secure.polisci.ohio-state.edu/faq/d3/zoomabletreemap_code.php并且目前尝试在树形图中传递多个参数并尝试将它们汇总到堆栈中,主要是在可缩放的树形图中完成。

为此更改记录的代码如下所示:

// Aggregate the values for internal nodes. This is normally done by the
// treemap layout, but not here because of our custom implementation.
function accumulate(d) {
return d.children
? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)
: d.value;
}

但在我的方法中,我必须使用多个参数进行总结,比如值和计数。我尝试更改相同的代码以添加两个参数,但这似乎没有奏效,请有人指导我:

   function accumulate(d) {
    return d.children
    ? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)
    : d.value;
    }
        function accumulate1(d) {
    return d.children
    ? d.count = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)
    : d.count;
    }

作为两个独立的函数,然后分别调用它们以将计数和值加到堆栈中,从叶节点开始。但这不起作用。你能指导我吗?

4

1 回答 1

0

您应该能够将accumulate函数中的两个值相加:

function accumulate(d) {
  return d.children
    ? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)
    : d.value + d.count;
}
于 2013-06-27T18:44:09.523 回答