【发布时间】:2020-12-30 03:55:25
【问题描述】:
我正在尝试实现 d3js 折线图的缩放。它适用于单系列产品,但不适用于多系列产品。这是svg缩放功能
function zoom(svg) {
var extent = [
[margin.left, margin.top],
[width - margin.right, height - margin.top]
];
var zooming = d3.zoom()
.scaleExtent([1, 3])
.translateExtent(extent)
.extent(extent)
.on("zoom", zoomed);
svg.call(zooming);
function zoomed() {
x.range([margin.left, width - margin.right]
.map(d => d3.event.transform.applyX(d)));
// for single series
svg.select(".path")
.attr("d", line);
svg.select(".x-axis")
.call(d3.axisBottom(x)
.tickSizeOuter(0));
}
}
另外附上工作fiddle,在演示中你可以清楚地看到鼠标滚动,只有一个线系列被缩放,另一个被固定。不知道如何解决这个问题。需要 D3 忍者的帮助。
【问题讨论】:
标签: javascript d3.js