Skip to content

Instantly share code, notes, and snippets.

@romsson
Last active October 2, 2017 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save romsson/2a79a123ca35bf1353647a6a52a9dcb1 to your computer and use it in GitHub Desktop.
Save romsson/2a79a123ca35bf1353647a6a52a9dcb1 to your computer and use it in GitHub Desktop.
age pyramid treemap
license: mit
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {
font-family: Helvetica;
font-size: 10px;
}
.point {
fill: black;
}
rect {
fill: none;
stroke: black;
stroke-width: 1;
}
</style>
<body>
<script src="http://d3js.org/d3.v4.js"></script>
<script src="http://romsson.github.io/d3-gridding/build/d3-gridding.js"></script>
<script src="https://romsson.github.io/d3-gridding/example/utils/utils.js"></script>
<script>
var width = 400,
height = 300;
var data = [], nb_year = 4, nb_flow = 2, nb_product = 28;
d3.range(nb_year).map(function(y) {
d3.range(nb_flow).map(function(f) {
d3.range(nb_product).map(function(p) {
data.push({"year": y, "flow": f, "product": p});
});
});
});
var params = [{
"size": function() { return [width, height]; },
"offset": function(d) { return [0, 0]; },
"mode": "vertical",
"padding": 0,
"level": 0
//}, {
// "size": function(d) { return [d.width, d.height]; },
// "offset": function(d) { return [d.x, d.y]; },
// "mode": "horizontal",
// "valueWidth": "size",
// "orient": function(d, i) { return +d.key % 2 === 0 ? "left": "right";},
// "padding": 10,
// "level": 1
}
];
var svgSquares = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g");
function update() {
nested_data = generate_nesting_agg([
{groupBy: "", fn: function(d) { return d.length}, accessor: function(d) { return d; }},
{groupBy: "year", fn: function(d, i) {return d.length; }, accessor: function(d) { return d.value; }, sortBy: "year"},
{groupBy: "flow", fn: function(d) {return Math.random(); }, accessor: function(d) { return d.value; }}
], "data");
console.log("NESTED", nested_data)
draw(svgSquares, nested_data[0], params, 0, "0_", false);
d3.selectAll(".index").remove();
}
update();
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment