Javascript 职位门槛尺度

Javascript 职位门槛尺度,javascript,d3.js,Javascript,D3.js,我希望有一个x轴,通过该轴,像素位置的数据由阈值计算。我知道对于所看到的颜色有阈值,但我还没有找到x/y轴的等效值 我的数据如下所示: {'aum':50,'inject':0,'sub':0}, {'aum':26,'inject':1,'sub':0}, {'aum':15,'inject':1,'sub':1} aum的范围从0到70。所以我想有一个箱子,也就是说,在我选择的三个阈值上标记箱子。考虑下面的代码: var xScale = d3.scaleThreshold() .

我希望有一个x轴,通过该轴,像素位置的数据由阈值计算。我知道对于所看到的颜色有阈值,但我还没有找到x/y轴的等效值

我的数据如下所示:

{'aum':50,'inject':0,'sub':0},
{'aum':26,'inject':1,'sub':0},
{'aum':15,'inject':1,'sub':1}
aum
的范围从0到70。所以我想有一个箱子,也就是说,在我选择的三个阈值上标记箱子。考虑下面的代码:

var xScale = d3.scaleThreshold()
    .domain([7,69,70])
    .range([0,width]);
在我的点图(仍在进行中)中,我想用
7,69,70+
作为阈值的三个类别,但结果是所有的圆圈都被猛击在一起。我上面的代码似乎不能作为一个适当的尺度

问题:
除了将数据重新编码为公开类别(0表示小于7,1表示8-69,2表示70+)之外,我是否可以构建一个d3能够理解的刻度,同时仍然以数字/浮点格式保存我的数据?

您可以使用阈值刻度来处理范围内的几乎任何内容,无论是颜色(即字符串)还是坐标(即数字)

在您的情况下,您只需要通过适当的范围数组。请记住,如果域中有N元素,则需要在范围内有N+1元素。此外,您的域中不需要
[7,69,70]
:这些值标记下一个bin的开始。因此,在您的情况下,域必须是
[8,70]

下面是一个演示:

var xScale=d3.scaleThreshold()
.domain([7,70])
.范围([0250500]);
控制台日志(xScale(4))
控制台日志(xScale(7))
控制台日志(xScale(30))
控制台日志(xScale(69))
console.log(xScale(100))