本文介绍了d3.js:有序缩放和缩放/平移的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个基本的D3条形图,带有顺序x轴和线性y轴。
I have a basic D3 bar chart with ordinal x-scale and linear y-scale.
我添加了缩放功能,
如何让x-scale根据缩放级别进行相应调整?
How can I get the x- scale to adjust accordingly with the zoom level?
现在的样子:
下面的js不能用顺序量表:
The js below doesn't work with ordinal scales:
d3.behavior.zoom()
。
d3.behavior.zoom() .x(x);
推荐答案
b
$ b
This is the way to do it:
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, xAxis与d3.event.translate [0](x轴)。
Just translate and scale the bars in X not x and y, also translate the xAxis with the d3.event.translate[0] (x axis).
编辑1:
这里是更新示例 clip-path :
这篇关于d3.js:有序缩放和缩放/平移的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!