.ticks()工作需要什么?

时间:2013-04-04 18:08:47

标签: d3.js

.ticks()似乎不适用于我的条形图。有人可以看看吗?

Here's the fiddle。我在对象开头附近的x轴上设置了刻度:

xAxis = d3.svg.axis().scale(xScale).orient("bottom").ticks(3),

4 个答案:

答案 0 :(得分:10)

我没有足够的声誉为第一篇文章添加评论,但我认为存在误解。

轴上的标签必须是2,5或10的倍数。刻度线功能可以取任何数字,但它会修改该数字以确保轴是2,5或10的倍数。 / p>

例如,如果域名为0-100且您想要4个刻度线(0,33.33,66.66,100),它将向上舍入为6以获得“漂亮”数字(0,20,40,60,80) ,100)。但是,如果你将ticks设置为3,它将尊重它,你将拥有0,50和100.

Here是迈克对此行为的解释。

我仍然不清楚为什么如果你将滴答数设置为5,它将不会计数0,25,50,75,100,但我认为我会尝试清除至少一些混乱。

答案 1 :(得分:7)

ticks只能取2.5,10的倍数而不是任何数字。这就是你可能遇到问题的原因。请查看此答案以获取自定义刻度。link

答案 2 :(得分:2)

您可以使用过滤器来决定要显示的标记:

LocationTracking

上面的剪辑来自this example

答案 3 :(得分:0)

执行此操作的方法是隐藏您不想要的第n个轴元素。对我而言,d3嘀嗒声只会让人感到烦恼。

.tick:nth-of-type(6) > text {
    display: none;
  }
  .tick:nth-of-type(7) > text {
    display: none;
  }
  .tick:nth-of-type(8) > text {
    display: none;
  }