[英]Get y-axis max/min value based on array using floating point numbers
我一直在使用一個腳本來計算給定數組時SVG / HTML5 Canvas圖形的y軸Min / Max標簽。
例如[124,721,361,297,177,21] y軸最小標簽= 0 | y軸最大標簽= 750
它一直在使用整數,但不適用於浮點值。 我怎樣才能使用float值?
這些是我用來計算最小值和最大值的函數
// 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);
。 這將適用於浮點並且與整數具有相同的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.