我想修改Mike Bostock的嵌套馅饼示例http://bl.ocks.org/mbostock/1305337 每个机场的航班数量不同的馅饼大小;了解每个机场的繁忙程度。我的猜测是总结一下 通过的航班数量 .rollup(function(leaves){return {“total_flights”:d3.sum(leaves,function(d){return +(d.flights);})}})(来自http://bl.ocks.org/phoebebright/raw/3176159/) 并以某种方式应用于r(半径),但在我还在学习的时候,我不知道在哪里注入它。
感谢您的提示/帮助。
答案 0 :(得分:2)
创建一个具有每个原始航班总数的对象:
var totalFlights = {};
airports.forEach(function(d){
totalFlights[d.key] = d3.sum(d.values.map(function(d){ return +d.count; }));
});
根据原点的总飞行大小确定弧的大小:
var arc = d3.svg.arc()
.innerRadius(function(d){ return totalFlights[d.data.origin]/952 * r / 2; })
.outerRadius(function(d){ return totalFlights[d.data.origin]/952 * r; });
952在这里有点神奇的数字,设置等于机场的最大航班数。理想情况下,您可以使用比例。