chart = {
const svg = d3.create("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom);
const svgg = svg.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")");
var sumstat = d3.group(data, d => d.name);
var x = d3.scaleLinear()
.domain(d3.extent(data, d => d.year))
.range([ 0, width ]);
svgg.append("g")
.attr("transform", "translate(0," + height + ")")
.call(d3.axisBottom(x).ticks(5));
var y = d3.scaleLinear()
.domain([0, d3.max(data, d => +d.n)])
.range([ height, 0 ]);
svgg.append("g")
.call(d3.axisLeft(y));
var res = Array.from(sumstat.keys());
var color = d3.scaleOrdinal()
.domain(res)
.range(['#e41a1c','#377eb8','#4daf4a','#984ea3','#ff7f00','#ffff33','#a65628','#f781bf','#999999'])
svgg.selectAll("path")
.data(sumstat)
.join("path")
.attr('fill', 'none')
.attr('stroke-width', 1.5)
.attr('stroke', d => color(d[0]))
.attr("d", d => {
return d3.line()
.x(d => x(d.year))
.y(d => y(+d.n))
(d[1])
});
return(svg.node());
}