我有一個基本的D3條形圖,它具有順序x尺度和線性y尺度。d3.js:順序縮放和縮放/平移
我已經添加了縮放功能,它可以在線性y尺度下正常工作。
我如何才能獲得x-比例以相應的縮放比例進行調整?
這裏是它的外觀現在:http://jsfiddle.net/bM4HC/1/
JS的下方不序尺度上發揮作用:
d3.behavior.zoom() .x(x);
我有一個基本的D3條形圖,它具有順序x尺度和線性y尺度。d3.js:順序縮放和縮放/平移
我已經添加了縮放功能,它可以在線性y尺度下正常工作。
我如何才能獲得x-比例以相應的縮放比例進行調整?
這裏是它的外觀現在:http://jsfiddle.net/bM4HC/1/
JS的下方不序尺度上發揮作用:
d3.behavior.zoom() .x(x);
這是爲了做到這一點:
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。
EDIT 1: 這裏是更新的例子與夾路徑: http://jsfiddle.net/9rypxf10/
[本示例](http://bl.ocks.org/stepheneb/1182434)示出了如何調整x軸和y軸根據變焦。 – FernOfTheAndes
該示例引用線性比例。我正在努力與一個序數。 – gipadm
您無法將序號比例鏈接到縮放行爲,因爲縮放行爲會嘗試使用線性比例的[min,max]格式更改比例域。請參閱[與刷牙功能有關的這個問題](http://stackoverflow.com/a/21492940/3128209)以獲得解決方法,並讓我知道是否還有其他解決辦法無法解決。 – AmeliaBR