首页 > 解决方案 > d3 rangeRound 的意外行为

问题描述

我正在使用这个比例:

scale = d3
    .scaleLinear()
    .domain([0, 100])
    .rangeRound([0, 10])

我不明白为什么scale(5)返回1
不应该到 9 的数字返回 0 吗?

这似乎也很奇怪:

scale(27): 2
scale(28): 3

我要做的就是取一个输入整数并返回一个从 0 到 N 的整数(等分!)

我想我的问题是“我怎样才能修复我的体重秤?”

标签: d3.js

解决方案


终于找到了一个可行的解决方案!

scale = d3
    .scaleQuantize()
    .domain([0, 100])
    .range(d3.range(10))
// scale(9): 0
// scale(10): 1
// scale(27): 2
// scale(28): 2

推荐阅读