treemap = {
let groups = d3.rollup(data, v => d3.sum(v, d => d["número"]), d => d["categoría"]);
let height = 500;
const childrenAccessorFn = ([ key, value ]) => value.size && Array.from(value)
const root = d3.hierarchy([null, groups], childrenAccessorFn)
.sum(([,value]) => value)
const svg = d3.create("svg").attr("width", width).attr("height", height).style("font", "20px sans-serif");
let color = d3.scaleOrdinal()
.domain(data.map(d => d["categoría"]))
.range(d3.schemeTableau10);
d3.treemap()
.tile(d3.treemapSquarify)
.size([width, height])
.paddingTop(15)
.paddingRight(7)
.paddingInner(3)
(root)
const g = svg.selectAll("g")
.data(root.leaves())
.join("g")
.attr("transform", d => `translate(${d.x0},${d.y0})`)
g.append("rect")
.attr('x', 0)
.attr('y', 0)
.attr('width', d => d.x1 - d.x0)
.attr('height', d => d.y1 - d.y0)
.style("stroke", "black")
.style("fill", d => color(d.data[0]))
g.append("text")
.data(root.leaves())
.join("text")
.attr("x", d => 5)
.attr("y", d => 20)
.text(d => d.data[0])
.attr("fill", "black")
return svg.node()
}