如何从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%"]
答案 0 :(得分:1)
这种方法似乎有效:
x.ticks().map(function(t) { return xaxis.tickFormat()(t); })
但这是一种相当折磨的语法。如果有人使用内置方法知道更好的答案,请发布。
这看起来很有希望:
xaxis.tickValues()
但似乎只是为了传递 值。如果不使用参数调用,则返回null。