function sparkarea({
x: X,
y: Y,
xdomain = d3.extent(X),
ydomain = d3.extent(Y),
width = 240,
height = 20
}) {
const x = d3.scaleUtc(xdomain, [0, width]);
const y = d3.scaleLinear(ydomain, [height, 0]);
const area = d3.area()
.x((d, i) => x(X[i]))
.y1((d, i) => y(Y[i]))
.y0(height)
.defined((d, i) => !isNaN(X[i]) && !isNaN(Y[i]));
return d3.create("svg")
.attr("width", width)
.attr("height", height)
.style("vertical-align", "middle")
.style("margin", "-3px 0")
.call(g => g.append("path")
.attr("fill", "#faa")
.attr("d", area(data)))
.call(g => g.append("path")
.attr("fill", "none")
.attr("stroke", "red")
.attr("d", area.lineY1()(data)))
.node();
}