h = window.innerHeight, x = d3.scale.linear().range([0, w]), y = d3.scale.linear().range([0, h]); var vis = d3.select("#partition") .style("width", w + "px") .style("height", h + "px") .append("svg:svg") .attr("width", w) .attr("height", h); var partition = d3.layout.partition() .value(function(d) { return d.size; }); root = JSON.parse('<?php echo json_encode($dataModel->getD3Scripts()); ?> '); var g = vis.selectAll("g") .data(partition.nodes(root)) .enter().append("svg:g") .attr("transform", function(d) { return "translate(" + x(d.y) + "," + y(d.x) + ")"; }) .on("click", click); var kx = w / root.dx, ky = h / 1; g.append("svg:rect") .attr("width", root.dy * kx) .attr("height", function(d) { return d.dx * ky; })