我想将一些输入值缩放到某个输出范围。
输入或域10,20,40,30 ---总和100
输出范围不应低于 16..并且所有输入的输出总和应为 214
myScale---d3线性刻度
var myScale = d3.scale.linear().domain([0, 100]).range([16,214]);
out1=myScale(10)
out2=myScale(20)
out3=myScale(40)
out4=myScale(30)
我希望 out1+out2+out3+out4 应始终等于 214,并且所有出局的最小值为 16 或大于该值。
请告诉我如何写比例
最佳答案
由于 minValue 是 16,并且正如 qiu-deqing 提到的,它会被添加与输入数量一样多的次数,因此我们应该确保它仅被添加一次。
var minValue = 16,
totalSum = 214,
numberOfInputs = 4;
var maxValue = totalSum - ((numberOfInputs - 1)*minValue);
var myScale = d3.scale.linear().domain([0, 100]).range([minValue,maxValue]);
关于javascript - 如何在 d3.js 中进行缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20780182/