我想弄清楚d3.js. 在定义轴时,如何在x轴上获得自定义标签.例如,我得到的默认标签是:
|------|------|------|------|------|------|
20 30 40 50 60 70 80
Run Code Online (Sandbox Code Playgroud)
然而,我想要的东西:
|------|------|------|------|------|------| ....
20 26 32 38 44 50 56
Run Code Online (Sandbox Code Playgroud)
我目前正在学习它,并从提供的官方示例中处理代码(略微修改):
var xAxis = d3.svg.axis().scale(x).tickPadding(7).orient("bottom");
var yAxis = d3.svg.axis().scale(y).tickPadding(5).orient("left");
Run Code Online (Sandbox Code Playgroud)
mbo*_*ock 65
定量刻度的默认刻度是2,5和10的倍数.您似乎需要6的倍数; 虽然不寻常,但根据底层数据的性质,这可能是有意义的.因此,虽然您可以使用axis.ticks来增加或减少滴答计数,但它总是会返回2,5和10的倍数 - 而不是6.
如果需要6的倍数,可以使用axis.tickValues显式指定刻度值.这通常与d3.range一起使用.例如:
xAxis.tickValues(d3.range(20, 80, 4));
Run Code Online (Sandbox Code Playgroud)
如果要动态计算值,请使用x-scale的域来检索最低和最高值.另外请记住,范围的上限是独占的,因此在上面的示例中,最大刻度值为76.您可以通过使范围的停止值稍大(例如,81)来使上限包含.