我正在使用 d3.js 制作退休计算器/条形图。我构建了条形图来显示静态数组,然后将图表连接到我的退休方程式。
当我将我的图表连接到我的计算器时,我的 yScale 是错误的,即使输入数组是相同的。我通过改变这个来修复它:
const yScale = d3.scaleLinear().domain([0, d3.max(fvArr,(d)=>d[1])]).range([height-padding,0]);
为此:
const yScale = d3.scaleLinear().domain([0, d3.max(fvArr,(d)=>d[1]*1)]).range([height-padding,0] );
为什么这样做? Codepen 是 here .
最佳答案
这里的问题是您的数据包含字符串,而不是数字。
如果查看 fvArr
数组,您会看到:
[[0, "30000"], [1, "32800"], [2, "35768"] etc...]
所以,乘法在这里所做的只是将结果强制转换为数字。检查这个:
console.log(typeof("5" * 1))
这与使用一元加号相同,后者更常见:
console.log(typeof(+"5"))
关于javascript - D3 比例 - 为什么乘以 1 会有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139632/