我试图根据http://bl.ocks.org/mbostock/7607535的可缩放包装圆圈可视化来构建视图,并且我试图让每个容器的父颜色基于其平均值子节点'分数。
在上面,我想我想我需要改变.style:
var circle = svg.selectAll("circle")
.data(nodes)
.enter().append("circle")
.attr("class", function(d) { return d.parent ? d.children ? "node" : "node node--leaf" : "node node--root"; })
.style("fill", function(d) { return d.children ? color(d.depth) : null; })
.on("click", function(d) { if (focus !== d) zoom(d), d3.event.stopPropagation(); });
我的问题是我不太熟悉这种递归是否可以在d3中实现。我更喜欢它在线,但我的编码并不是最好的。我怀疑我可能需要编写一个单独的函数并在块中调用它,类似于:
.style("fill", function(d) { return d.children ? color(calculatingFn(d)) : d.score; })
我想问题的确是:计算Fn(d)应该是什么样的(或者其他更优雅的解决方案)?
感谢任何帮助。