Published unlisted
Edited
Feb 14, 2019
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
nested = {
var dat = {};
dat["name"] = "moluscs";
// d.name = "mollusc";
dat.children = getData(longData);
return dat;
}
Insert cell
function getData(data) {
var children = [];
var totals = [];
// var unique =[];

data.forEach(function(d, i) {
children.push(d);
});

var level2 = d3
.nest()
.key(function(d) {
return d["kingdom"];
})
.key(function(d) {
return d["phylum"];
})
.key(function(d) {
return d["class"];
})
.key(function(d) {
return d["order"];
})
.key(function(d) {
return d["family"];
})
.key(function(d) {
return d["genus"];
})
.rollup(function(v) {
return d3.sum(v, function(d) {
// console.log(d["Grant Type"])
return d["Value"];
});
})
.entries(children);

console.log(level2);

return level2;
}
Insert cell
Insert cell
d3_array2.group(
longData,
d => d["kingdom"],
d => d["phylum"],
d => d["class"],
d => d["order"],
d => d["class"],
d => d["family"],
d => d["genus"]
)
Insert cell
Insert cell
mapped = d3_array2.rollup(
longData,
v => d3.sum(v, d => d.Value),
d => d["kingdom"],
d => d["phylum"],
d => d["class"],
d => d["order"],
d => d["class"],
d => d["family"],
d => d["genus"]
)
Insert cell
Insert cell
dat = ({ name: "moluscs", children: mapToObj(mapped) })
Insert cell
// there must be a better way :)

// dat = {
function mapToObj(map) {
if (map instanceof Map) {
return Array.from(map).map(([key, val]) => ({
name: key,
children: mapToObj(val)
}));
}
return map;
}
// const a = {};
// a["name"] = "moluscs";
// let child = [];
// mapped.forEach((val, key) => {
// // a[name] =key
// val.forEach((v, k) => {
// console.log(k);
// });
// child.push({
// name: key,
// children: [{ name: 1 }]
// });
// a.children = child;
// });
// return a;
//
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more