获取应用了最终格式的轴刻度列表

时间:2014-04-25 15:41:56

标签: javascript d3.js

如何从D3中获取格式化的刻度值列表,因为它们会在渲染轴时出现?

例如:

var x = d3.scale.linear()
    .domain([0, 0.061])
    .nice();

var xaxis = d3.svg.axis()
    .scale(x)
    .tickFormat(d3.format('.1%'));

console.log(x.ticks()); // [0, 0.005, 0.01, 0.015, 0.02, 0.025, 0.035...
console.log(xaxis.ticks()); //[10]

但我真正想要的是:

  

[" 0.0%"," 0.5%"," 1.0%"," 1.5%",&# 34; 2.0%"," 2.5%"," 3.0%"," 3.5%"," 4.0%&# 34;," 4.5%"," 5.0%"," 5.5%"," 6.0%",&#34 ; 6.5%"]

1 个答案:

答案 0 :(得分:1)

这种方法似乎有效:

x.ticks().map(function(t) { return xaxis.tickFormat()(t); })

但这是一种相当折磨的语法。如果有人使用内置方法知道更好的答案,请发布。

这看起来很有希望:

xaxis.tickValues()

但似乎只是为了传递 值。如果不使用参数调用,则返回null。