我的基本尺度如下:
var yScale = d3.scale.linear()
.domain([0, totalCount])
.range([0, containerHeight]);
现在,当我在其中放入一些内容时,如yScale(6)
,它可以返回一个浮点数,但是我希望它返回一个代表我网格中行号的数字。因此,如果值在某个范围内,请返回1
,如果它在另一个范围内,则返回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