Plot.plot({
marks: [
Plot.ruleY([0]),
Plot.lineY(balanceChanges, {x: "timestamp", y: "diff"}),
Plot.dot(balanceChanges, {date: "timestamp"}),
Plot.dot(balanceChanges, Plot.pointerX({x: "timestamp", y: "diff", stroke: "red"})),
Plot.text(balanceChanges, Plot.pointerX({px: "timestamp", py: "diff", dy: -17, frameAnchor: "top-left", fontVariant: "tabular-nums", text: (d) => [`Date ${Plot.formatIsoDate(d.timestamp)}`, `Diff ${d.diff.toFixed(2)}`].join(" ")}))
]
})