我正在尝试获取元素翻译的值。
例如,如果我选择x轴:
d3.select('.x.axis').attr("transform")
然后我得到
"translate(0,112)"
如何在不解析正则表达式的情况下获取0
和112
?
我正在尝试这样做,以便我可以添加到该值。在伪代码中:
d3.selectAll('.x.axis').attr('transform', 'translate('
.attr('transform').match(/(\d+)(\.\d+)?/g)[0] // <-- clearly won't work
+ additional_value
+ ', 0)');
答案 0 :(得分:34)
D3为此提供了transform()
function:
var t = d3.transform(d3.select('.x.axis').attr("transform")),
x = t.translate[0],
y = t.translate[1];
答案 1 :(得分:4)
如果你想使用selectAll,你可以尝试这样的事情:
// move ticks to the center of the x-axis
var transform;
d3.selectAll('.tick').attr('transform', function(){
transform = d3.transform(d3.select(this).attr("transform"));
return "translate("+transform.translate[0]+", -3)";
});