mk_chart = function(data) {
const [rootdiv, svg, g] = initChart();
g.attr("transform", `translate(${dim.mgs.l}, ${dim.mgs.t})`);
const domX = [0, Object.keys(data).length],
ranX = [0, dim.gW];
const xScale = d3.scaleLinear(domX, ranX);
const yScale = selected_scale;
const abscissa = d3.axisBottom().scale(xScale),
ordinates = d3.axisLeft().scale(yScale);
g.append("g")
.attr("class", "x axis")
.attr("transform", `translate(0, ${dim.gH+ dim.mgs.b - 20})`)
.call(abscissa);
g.append("g")
.attr("class", "y axis")
.attr("transform", `translate(0,0)`)
.call(ordinates);
const line_gen = d3
.line()
.x(d => xScale(d.x))
.y(d => yScale(d.y));
const line = g
.append("path")
.datum(data).attr("class", "line")
.attr("d", line_gen);
const shapes = g
.selectAll("p")
.data(data)
.enter()
.append("path").attr("class", "shape")
.attr("transform", d => `translate(${xScale(d.x)}, ${yScale(d.y)})`)
.attr("d", shape_gen);
const title = html`<h3>${scale_select} chart</h3>`
rootdiv.append(title)
rootdiv.appendChild(svg.node());
rootdiv.append(style)
return rootdiv;
};