chart = {
const context = DOM.context2d(width, height);
const r = 1.5;
d3.select(context.canvas).call(d3.zoom()
.scaleExtent([1, 8])
.on("zoom", ({transform}) => zoomed(transform)));
function zoomed(transform) {
context.save();
context.clearRect(0, 0, width, height);
context.beginPath();
for (const d of data) {
const [x, y] = transform.apply(d);
context.moveTo(x + r, y);
context.arc(x, y, r, 0, 2 * Math.PI);
}
context.fill();
context.restore();
}
zoomed(d3.zoomIdentity);
return context.canvas;
}