chart = {
const svg = d3
.create("svg")
.attr("viewBox", [-width / 2, -height / 2, width, height])
.attr("stroke-linejoin", "round")
.attr("stroke-linecap", "round");
svg
.append("path")
.datum(blossoms.filter(radial.defined()))
.attr("fill", "none")
.attr("stroke", "#ccc")
.attr("stroke-width", "0.5")
.attr("d", radial);
let areaGradient = svg
.append("defs")
.append("radialGradient")
.attr("id", "areaGradient")
.attr("x1", "0%")
.attr("y1", "0%")
.attr("x2", "100%")
.attr("y2", "100%");
areaGradient
.append("stop")
.attr("offset", "0%")
.attr("stop-color", "#edd1cb")
.attr("stop-opacity", 1);
areaGradient
.append("stop")
.attr("offset", "60%")
.attr("stop-color", "#c3819c")
.attr("stop-opacity", 1);
areaGradient
.append("stop")
.attr("offset", "100%")
.attr("stop-color", "#2d1e3e")
.attr("stop-opacity", 1);
svg
.append("path")
.datum(blossoms)
.attr("fill", "none")
.attr("stroke", "url(#areaGradient)")
.attr("stroke-width", "0.5")
.attr("d", radial);
svg.append("g").call(xAxis);
svg.append("g").call(yAxis);
return svg.node();
}