chart = {
const cp = chart_param,
svg = d3.select(DOM.svg(cp.width + cp.margin.left + cp.margin.right,
cp.height + cp.margin.top + cp.margin.bottom));
svg.append("g")
.attr("fill", "none")
.attr("stroke-linejoin", "round")
.selectAll("path")
.data(contours)
.enter().append("path")
.attr("stroke-width", (d, i) => i % 5 ? 0.1 : 1)
.attr("stroke", d => color(d.value))
.attr("d", d3.geoPath())
.attr("fill", d => color(d.value).replace(")", ", 0.1)"));
svg.selectAll("circle.CHIpaper")
.data(CHI).enter()
.append("circle")
.attr("cx", d => cp.margin.left + x(d.left))
.attr("cy", d => cp.margin.top + y(d.top))
.attr("fill", d => colorScale(d.design))
.attr("r", width * .0025);
draw_axes(svg, cp);
return svg.node();
}