chart = {
var margin = { top: 20, right: 10, bottom: 20, left: 10 };
const width = 600 - margin.left - margin.right;
const height = 100 - margin.top - margin.bottom;
const svg = d3.create("svg")
.attr("viewBox", [0, 0, width, height]);
var n = 5, m = 3;
var data = d3.range(m).map(function() {
return d3.range(n).map(Math.random);
});
console.log(data);
const c = d3.scaleOrdinal(d3.schemeCategory10).domain(d3.range(n));
const x = d3.scaleBand().domain(d3.range(m)).range([0, width]).paddingInner(.1);
const x2 = d3.scaleBand().domain(d3.range(n)).range([0, x.bandwidth()]).paddingInner(.1);
var y = d3.scaleLinear().domain([0, 1]).range([height, 0]);
svg.selectAll("g").data(data).enter()
.append("g")
.attr("transform", function(d, i) { return "translate(" + x(i) + ", 0)"; })
.selectAll("rect")
.data(function(d) { return d; }).enter()
.append("rect")
.style("stroke", "black")
.attr("fill", function(d, i) { return c(i); })
.attr("x", function(d, i) { return x2(i); })
.attr("y", function(d, i) { return y(d); })
.attr("width", function(d, i) { return x2.bandwidth(); })
.attr("height", function(d, i) { return height - y(d); });
return svg.node();
}