我如何通过数十年的相同大小的时间跨度来嵌套数据。
[{key: "1432"}
{key: "1436"}
{key: "1557"}
{key: "1559"}
{key: "1834"}
{key: "1836"}
{key: "1839"}
{key: "undefined"}]
[{key: "1430-1439", values: Array}
{key: "1550-1559", values: Array}
{key: "1830-1839", values: Array}
{key: "undefined", values: Array}]
另外,如果动态计算时间跨度的大小会很好。
答案 0 :(得分:0)
我通过循环遍历所有元素来解决问题,并像这里一样添加相应的十年。
for(i = 0; i < dataToDraw.length; i++) {
if(dataToDraw[i].year != undefined) {
var decadeStart = dataToDraw[i].year - dataToDraw[i].year % 10;
dataToDraw[i].decade = decadeStart + "-" + (decadeStart + 9);
}
}
之后我使用d3.nest在新的十年字段中嵌套数据。
nestedDecadeData = d3.nest()
.key(function(d) { return d.decade; })
.sortKeys(d3.ascending)
.entries(dataToDraw);