我有一个基本的D3条形图,带有序数x刻度和线性y刻度。
我添加了缩放功能,它可以正常使用线性y刻度。
如何使缩放级别相应地调整x刻度?
以下是它现在的样子:http://jsfiddle.net/bM4HC/1/
下面的js不适用于序数尺度:
d3.behavior.zoom()
.x(x);
答案 0 :(得分:14)
这是做到这一点的方法:
function zoom() {
bars.attr("transform", "translate(" + d3.event.translate[0]+",0)scale(" + d3.event.scale + ",1)");
chart.select(".x.axis")
.attr("transform", "translate(" + d3.event.translate[0]+","+(height)+")")
.call(xAxis.scale(x.rangeRoundBands([0, width * d3.event.scale],.1 * d3.event.scale)));
chart.select(".y.axis")
.call(yAxis);
}
只需翻译和缩放X中的条形而不是x和y,也可以使用d3.event.translate [0](x轴)转换xAxis。
编辑1: 以下是 clip-path 的更新示例: http://jsfiddle.net/9rypxf10/