chart = {
const svg = d3.create("svg").attr("viewBox", [0, 0, n*u, m*u]);
var g = svg.append("g");
g.selectAll("g")
.data(dataset)
.enter()
.append("g")
.attr("transform", (d, i) => "translate(0," + i*u + ")")
.selectAll("rect")
.data((d) => d)
.enter()
.append("rect")
.attr("x", (d, j) => j*u)
.attr("y", 0)
.attr("width", u)
.attr("height", u)
.attr("fill", d => d3.interpolateRdYlGn(d))
;
d3.select("head").append("link")
.attr("href", "https://fonts.googleapis.com/css2?family=Work+Sans:wght@800&display=swap")
.attr("rel", "stylesheet");
svg.append("text")
.attr("x", () => { let max = n*u-175, min = 10; return (Math.random() * (max - min) + min); })
.attr("y", () => { let max = m*u-100, min = 50; return (Math.random() * (max - min) + min); })
.attr("style", "font-family: 'Work Sans', sans-serif; font-size: 32pt; fill: white; opacity: 0.8;")
.text("random");
return svg.node();
}