Aşağıdaki d3 / d3fc grafiğim var
https://codepen.io/parliament718/pen/BaNQPXx
Grafiğin ana alan için bir yakınlaştırma davranışı ve y ekseni için ayrı bir yakınlaştırma davranışı vardır. Y ekseni yeniden ölçeklendirmek için sürüklenebilir.
Sorun çözme sorunum yeniden ölçeklendirmek için y eksenini sürükledikten sonra grafik sonra panning, grafikte bir "atlama" olmasıdır.
Açıkçası 2 yakınlaştırma davranışı bir bağlantı kesilmesi ve senkronize edilmesi gerekiyor, ancak bunu düzeltmeye çalışırken beynimi rafa atıyorum.
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);
});
İstenen davranış, yakınlaştırma, yatay kaydırma ve / veya yeniden ölçekleme işlemidir. Dönüşümü her zaman bir önceki eylemin bittiği yerden herhangi bir "atlama" olmadan uygulamaktır.