javascript - 如何在 d3.js 中进行缩放

标签 javascript d3.js

我想将一些输入值缩放到某个输出范围。

输入或域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]);

fiddle

关于javascript - 如何在 d3.js 中进行缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20780182/

相关文章:

javascript - 我可以在 D3 中一次指定两个属性吗?

javascript - d3.js:如何用空白值的颜色填充单元格?

javascript - react -Redux : Copying an array from the state in Reducer function so that you can modify it

javascript - 如何禁用对 Iframe 的直接访问

javascript - 焦点未正确显示图形 D3 javascript

javascript - D3 中带有日期的简单折线图

javascript - 任何人都可以解释闭包和嵌套函数之间的区别吗?

需要 javascript 语法帮助

javascript - 在 JavaScript 中设置代理

javascript - 将d3图表(svg)转换为图像并显示