在D3中创建步长

时间:2014-06-18 09:04:56

标签: javascript d3.js

我的基本尺度如下:

        var yScale = d3.scale.linear()
          .domain([0, totalCount])
          .range([0, containerHeight]);

现在,当我在其中放入一些内容时,如yScale(6),它可以返回一个浮点数,但是我希望它返回一个代表我网格中行号的数字。因此,如果值在某个范围内,请返回1,如果它在另一个范围内,则返回2,依此类推。我想我需要计算该值是否在范围内并返回自定义值。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

d3提供离散范围值和连续域的量化标度。

var yScale = d3.scale.quantize()
          .domain([0, 50])
          .range([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

在这种情况下,对于来自[0,5)的值,您将获得1,对于范围为[5,10]的值,您将获得2,​​依此类推。

[0,5]表示0是包含但是5是独占的,即4.9999将返回1但是5将返回2

答案 1 :(得分:0)

range 函数有第三个参数,即 step 。希望有所帮助。

d3.range([start, ]stop[, step])

d3.range(0, 1, 0.2) // [0, 0.2, 0.4, 0.6000000000000001, 0.8