【发布时间】:2014-02-22 21:08:11
【问题描述】:
我正在与this d3.js example 合作,并希望将图表的整个方向更改为从右到左。
我能够反转 x 轴刻度:
var x = d3.scale.linear().range([width, 0]);
以及y轴的位置:
svg.append("g").attr("class", "y axis")
.attr("transform", "translate("+width+", 0)")
.append("line").attr("y1", "100%");
我相信我必须将每个条形上的转换设置为图表宽度 - 条形宽度但是对包含的 g 应用任何转换都没有效果。
function bar(d) {
var bar = svg.insert("g", ".y.axis")
.attr("class", "enter")
.attr("transform", "translate(0,5)")
.selectAll("g")
.data(d.children)
.enter().append("g");
//DOESNT WORK
bar.attr("transform", function(n){ return "translate("+ (width - x(n.value)) +", 0)"; })
.style("cursor", function(d) { return !d.children ? null : "pointer"; })
.on("click", down);
bar.append("text")....
bar.append("rect")....
return bar;
}
bar 上没有设置任何转换,即使我只是用一个固定值进行测试,结果页面中的结果也是 translate(0,0)。
为什么不在这里应用变换,这甚至是使条正确对齐的正确方法吗?我还需要将文本放在栏的右侧而不是左侧,似乎更改附加顺序在这方面没有任何区别。
【问题讨论】:
标签: javascript d3.js