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.translate(transform.x, transform.y);
context.scale(transform.k, transform.k);
context.beginPath();
for (const [x, y] of data) {
context.moveTo(x + r, y);
context.arc(x, y, r, 0, 2 * Math.PI);
}
context.fill();
context.restore();
}
zoomed(d3.zoomIdentity);
return context.canvas;
}