J'ai le graphique d3 / d3fc suivant
https://codepen.io/parliament718/pen/BaNQPXx
Le graphique a un comportement de zoom pour la zone principale et un comportement de zoom distinct pour l'axe des y. L'axe des y peut être déplacé pour être mis à l'échelle.
Le problème que j'ai du mal à résoudre est qu'après avoir fait glisser l'axe des y pour redimensionner et ensuite faire un panoramique sur le graphique, il y a un "saut" dans le graphique.
Évidemment, les 2 comportements de zoom ont une déconnexion et doivent être synchronisés, mais j'essaye de résoudre ce problème.
const mainZoom = zoom()
.on('zoom', () => {
xScale.domain(t.rescaleX(x2).domain());
yScale.domain(t.rescaleY(y2).domain());
});
const yAxisZoom = zoom()
.on('zoom', () => {
const t = event.transform;
yScale.domain(t.rescaleY(y2).domain());
render();
});
const yAxisDrag = drag()
.on('drag', (args) => {
const factor = Math.pow(2, -event.dy * 0.01);
plotArea.call(yAxisZoom.scaleBy, factor);
});
Le comportement souhaité est le zoom, le panoramique et / ou le redimensionnement de l'axe pour toujours appliquer la transformation de l'endroit où l'action précédente s'est terminée, sans aucun "saut".