mk_chart = function(data, symbol) {
const [rootdiv, svg, g] = initChart();
g.attr("transform", `translate(${dim.mgs.l}, ${dim.mgs.t})`);
const domX = [0, Object.keys(data).length - 1],
ranX = [0, dim.gW];
const xScale = d3.scaleLinear(domX, ranX);
const Ymax = d3.max(data, d => d.y);
const domY = d3.extent(data, d => d.y),
ranY = [dim.gH, 0];
const linScale = d3.scaleLinear();
const yScale = linScale.domain(domY).range(ranY);
const abscissa = d3.axisBottom().scale(xScale),
ordinates = d3.axisLeft().scale(yScale);
g.append("g")
.attr("class", "x axis")
.attr("transform", `translate(0, ${dim.gH})`)
.call(abscissa);
g.append("g")
.attr("class", "y axis")
.attr("transform", `translate(0,0)`)
.call(ordinates);
const line = d3
.line()
.x(d => xScale(d.x))
.y(d => yScale(d.y));
const ligne = g
.append("path")
.datum(data).attr("class", "line")
.attr("d", line);
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);
rootdiv.appendChild(svg.node());
rootdiv.append(style)
return rootdiv;
};