Plot.plot({
marks: [
Plot.rectY(
data,
Plot.groupX(
{ y: "count" },
{
x: (d) => d3.utcMonth.floor(d["date_of_birth"]),
interval: d3.utcMonth,
insetLeft: 4,
insetRight: 4,
stroke: "black",
rx: 8
}
)
),
Plot.textY(
data,
Plot.stackY2(
Plot.groupX(
{ y: "count", text: "count" },
{
x: (d) =>
+d3.utcMonth.floor(d["date_of_birth"]) + 14 * 24 * 3600 * 1000,
x: (d) =>
(+d3.utcMonth.floor(d["date_of_birth"]) +
+d3.utcMonth.ceil(1 + +d["date_of_birth"])) /
2,
dy: -4
}
)
)
)
],
y: { insetTop: 10 }
})