У меня есть следующий пример диаграммы d3f c на основе холста с увеличением
https://codepen.io/parliament718/pen/xxbQGgp
Как разрешить пользователю изменять масштаб перетаскивая ось х вдоль нее?
Трудно найти хороший пример этой функции, используя последние версии d3f c и d3. Есть несколько старых примеров, но они больше не применимы. Код ниже загружает последние версии библиотек.
var zoom = d3.zoom()
.on('zoom', () => {
//Important: This zoom behavior allows zooming on X axis only but dragging along both axes.
const t = d3.event.transform;
x.domain(t.rescaleX(x2).domain());
if (d3.event.sourceEvent && d3.event.sourceEvent.type != "wheel") {
lastY = t.y - yOffset;
const translate = d3.zoomIdentity.translate(0, lastY);
y.domain(translate.rescaleY(y2).domain());
}
else {
yOffset = t.y - lastY;
}
render();
});