35

我正在尝试找出 d3.js。在定义轴时,如何在 x 轴上获得自定义标签。例如,我得到的默认标签是:

|------|------|------|------|------|------|
20    30     40     50     60     70     80

鉴于,我想要类似的东西:

|------|------|------|------|------|------| ....
20    26      32    38     44     50     56

我目前正在学习它并从提供的官方示例中处理代码(稍作修改):

var xAxis = d3.svg.axis().scale(x).tickPadding(7).orient("bottom");
var yAxis = d3.svg.axis().scale(y).tickPadding(5).orient("left");
4

1 回答 1

71

定量刻度的默认刻度是 2、5 和 10 的倍数。您似乎想要 6 的倍数;虽然不寻常,但根据基础数据的性质,这可能是有意义的。因此,虽然您可以使用axis.ticks来增加或减少滴答计数,但它始终会返回 2、5 和 10 的倍数,而不是 6。

如果您想要 6 的倍数,您可以使用axis.tickValues明确指定刻度值。这通常与d3.range结合使用。例如:

xAxis.tickValues(d3.range(20, 80, 4));

如果要动态计算值,请使用 x-scale 的域来检索最低和最高值。还要记住,范围的上限是互斥的,因此在上面的示例中,最大刻度值为 76。您可以通过使范围的停止值稍大(例如,81)来使上限包含在内。

于 2012-10-27T16:45:53.487 回答