使用浮点数获取基于数组的y轴最大/最小值
Get y-axis max/min value based on array using floating point numbers
当给定一个数组时,我一直在使用一个脚本来计算SVG/HTML5 Canvas图的y轴最小/最大标签。
例如[12472136297177,21]y轴最小标签=0 | y轴最大标签=750
它对整数处理得很好,但对浮点值不起作用。如何使用浮点值实现此操作?
这些是我用来计算最小值和最大值的函数
// Calculate y-axis Max label value
function yMax (numArray) {
var max = getMaxOfArray(numArray);
var yRange = getRangeOfArray(numArray);
var yPow = Math.pow(10, yRange.toString().length - 1) /2;
// (/2) division added for more accurate result
return Math.ceil(max / yPow) * yPow
}
// Calculate y-axis Min label value
function yMin (numArray) {
var min = getMinOfArray(numArray);
var yRange = getRangeOfArray(numArray);
var yPow = Math.pow(10, yRange.toString().length - 1) ;
return Math.floor(min / yPow) * yPow
}
我已经包含了我提到的有用数学函数的脚本。
// Get Max value from array
function getMaxOfArray(numArray) {
return Math.max.apply(null, numArray);
}
// Get Min value from array
function getMinOfArray(numArray) {
return Math.min.apply(null, numArray);
}
// Get Range of array
function getRangeOfArray (numArray) {
var max = getMaxOfArray(numArray);
var min = getMinOfArray(numArray);
return max - min;
}
将yRange.toString().length
更改为1 + Math.floor(Math.log(yrange)/LOG10);
,其中LOG10
是一个常量,只需要初始化一次为LOG10 = Math.log(10);
。这将适用于浮点,并且在整数上具有相同的行为。
相关文章:
- Javascript-如何使用函数找到数组的最小值
- 从 JavaScript 中的数组中获取最大值和最小值
- 使用函数从数组中查找最小值和最大值
- 使用浮点数获取基于数组的y轴最大/最小值
- 在带有对象的数组中查找最小值、最大值
- 从包含对象的数组中查找最小值的最佳方法
- 在没有 Math.min 的情况下查找数组中的最小值
- 从 JavaScript 数组中获取对象值的最大值和最小值
- 从数组中获取 JS 函数的最小值和最大值
- JavaScript中数组的最小值和最大值
- 比较 JavaScript 对象数组以获得最小值/最大值
- 从带有下划线的对象数组中获取最小值和最大值
- 在javascript中的数组中查找多个最小值的索引
- 计算最小值和最大值时得到空数组
- 在javascript数组中查找最小值
- 在Javascript中使用Math.min.apply()获取数组的最小值返回NaN
- 如何在保持最小值的同时缩放值数组?
- 使用D3.JS查找数组的最小值和最大值,而不是普通的Javascript
- 在数组的数组中找到最小值
- 按该顺序返回数组的最大值/最小值/平均值