chart = {
const svg = d3.create("svg")
.attr("preserveAspectRatio", "xMinYMin meet")
.attr("viewBox", "-" + adj + " -"+ adj + " " + (width + adj*2) + " " + (height + adj*2))
.style("background", mode === "dark" ? "#2e2e2e" : "#fff");
const gradient_light = svg.append("linearGradient")
.attr("id","gradLight")
.attr("x1","0%")
.attr("y1","0%")
.attr("x2","0%")
.attr("y2","100%");
gradient_light.append("stop")
.attr("offset", "0%")
.attr("stop-color", "#6a915c");
gradient_light.append("stop")
.attr("offset", "60%")
.attr("stop-color", "#92ac7d");
gradient_light.append("stop")
.attr("offset", "95%")
.attr("stop-color", "#b8c8a0");
const gradient_dark = svg.append("linearGradient")
.attr("id","gradDark")
.attr("x1","0%")
.attr("y1","0%")
.attr("x2","0%")
.attr("y2","100%");
gradient_dark.append("stop")
.attr("offset", "0%")
.attr("stop-color", "#b8c8a0");
gradient_dark.append("stop")
.attr("offset", "60%")
.attr("stop-color", "#92ac7d");
gradient_dark.append("stop")
.attr("offset", "95%")
.attr("stop-color", "#6a915c");
svg.append("g")
.call(xAxis);
svg.append("g")
.call(yAxis);
const group = svg.append("g")
.selectAll("g")
.data(data.series)
.join("g")
.attr("transform", d => `translate(0,${y(d.name) + 1})`);
group.append("path")
.attr("fill", mode==="dark"?"url(#gradDark)":"url(#gradLight)")
.attr("d", d => area(d.values));
group.append("path")
.attr("fill", "none")
.attr("stroke", mode==="dark"?"#f2e8d2":"#544208")
.attr("d", d => line(d.values));
return svg.node();
}