Eu tenho o seguinte gráfico d3 / d3fc
https://codepen.io/parliament718/pen/BaNQPXx
O gráfico possui um comportamento de zoom para a área principal e um comportamento de zoom separado para o eixo y. O eixo y pode ser arrastado para redimensionar.
O problema que estou tendo para solucionar problemas é que, depois de arrastar o eixo y para redimensionar a escala e, posteriormente, movimentar o gráfico, há um "salto" no gráfico.
Obviamente, os 2 comportamentos de zoom têm uma desconexão e precisam ser sincronizados, mas estou destruindo meu cérebro tentando consertar isso.
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);
});
O comportamento desejado é aplicar zoom, panorâmica e / ou redimensionar o eixo para aplicar sempre a transformação de onde quer que a ação anterior seja concluída, sem nenhum "salto".