chart = {
const svg = d3.create("svg")
.attr("viewBox", [0, 0, width, height]);
let defs = svg.append('defs');
for(let key of data.columns.slice(1)) {
let gradient = defs.append('linearGradient')
.attr('id', key)
.attr('x1', 0)
.attr('x2', 0)
.attr('y1', 0)
.attr('y2', 1)
gradient.append('stop')
.attr('stop-color', color(key))
.attr('offset', '0');
gradient.append('stop')
.attr('stop-color', color(key))
.attr('stop-opacity', 0.6)
.attr('offset', '15');
}
svg.append("g")
.selectAll("path")
.data(series)
.join("path")
.attr("fill", ({key}) => `url(#${key})`)
.attr("d", area)
.append("title")
.text(({key}) => key);
svg.append("g")
.call(xAxis);
return svg.node();
}