chart = {
const root = treemap(data);
const context = DOM.context2d(width, height)
const leaves = root.leaves();
const getColor = (d) => { while (d.depth > 1) d = d.parent; return color(d.data.name); }
leaves.forEach(leaf => {
context.save();
context.globalAlpha = 0.7;
context.beginPath();
context.rect(
leaf.x0,
leaf.y0,
leaf.x1 - leaf.x0,
leaf.y1 - leaf.y0
)
context.fillStyle = getColor(leaf)
context.fill();
context.clip();
context.font = "10px sans-serif";
const textData = leaf.data.name.split(/(?=[A-Z][^A-Z])/g).concat(format(leaf.value));
context.globalAlpha = 1;
textData.forEach((d, i, nodes) => {
let offsetY = 12;
if(i > 0) {
offsetY += i * 12
}
context.fillStyle = "black";
context.fillText(d, leaf.x0, leaf.y0 + offsetY)
});
context.restore();
})
return context.canvas;
}