Это действительно странный вопрос. Я работаю над этим https://secure.polisci.ohio-state.edu/faq/d3/zoomabletreemap_code.php и в настоящее время пытается передать более одного параметра в treemap и попытаться суммировать их по стеку, так как в основном это делается в масштабируемой treemap.D3 Treemap множественный параметр, суммирующий стек
Код документированы для этого изменения определяется как:
// 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;
}
Как две отдельные функции, а затем вызвать их отдельно суммировать как количество и значение для стека, начиная с листовых узлов. Но это не работает. Не могли бы вы направить меня?
Ну, это, вероятно, слишком поздно для neoeahit (и к тому же, ответ Ларса, казалось, сделать трюк для конкретного случая), но основная причина, по которой две разные функции не работали, состоит в том, что вторая функция по-прежнему вызывает «накапливать (v)», когда вместо этого она должна вызывать «accumulate1 (v)» для правильной коррекции. При этом изменении каждый узел будет иметь два разных накопленных свойства: один для значения и один для подсчета. – AmeliaBR