d3f c d3. js - перетащите, чтобы увеличить ось, используя последнюю версию - PullRequest
0 голосов
/ 28 января 2020

У меня есть следующий пример диаграммы 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();
});
...