grid = g =>
g
.attr("stroke", "currentColor")
.attr("stroke-opacity", 0.1)
.call(g =>
g
.append("g")
.selectAll("line")
.data(xScatter.ticks())
.join("line")
.attr("x1", d => 0.5 + xScatter(d))
.attr("x2", d => 0.5 + xScatter(d))
.attr("y1", marginScatter.top)
.attr("y2", height - marginScatter.bottom)
)
.call(g =>
g
.append("g")
.selectAll("line")
.data(yScatter.ticks())
.join("line")
.attr("y1", d => 0.5 + yScatter(d))
.attr("y2", d => 0.5 + yScatter(d))
.attr("x1", marginScatter.left)
.attr("x2", width - marginScatter.right)
)