D3.js 更改x轴上的记号

D3.js 更改x轴上的记号,d3.js,D3.js,我正在努力找出d3.js。定义轴时,如何在x轴上获得自定义标签。例如,我得到的默认标签是: |------|------|------|------|------|------| 20 30 40 50 60 70 80 然而,我想要的是: |------|------|------|------|------|------| .... 20 26 32 38 44 50 56 我目前正在学习它,并根

我正在努力找出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");

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

如果需要6的倍数,可以使用显式指定刻度值。这通常与。例如:

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

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

哈哈!我已经想好了,自己来这里回答这个问题,但不管怎样,你的帖子确实很有帮助。谢谢!:)@在我的xAxis中,我有24个分类,但在我的xAxis中添加.ticks(6)没有任何作用-所有24个仍然显示。有什么想法吗?现在说tickSubdivide已被弃用,它什么也不做。如果我的xAxis标签是日期怎么办?如何跳过标签?