evaluateBarSparseness.js
871 字节
export default function (data, dimX, dimY) {
var xExtent = data.getDataExtent(dimX);
var yExtent = data.getDataExtent(dimY);
// TODO Handle one data situation
var xSpan = (xExtent[1] - xExtent[0]) || xExtent[0];
var ySpan = (yExtent[1] - yExtent[0]) || yExtent[0];
var dimSize = 50;
var tmp = new Uint8Array(dimSize * dimSize);
for (var i = 0; i < data.count(); i++) {
var x = data.get(dimX, i);
var y = data.get(dimY, i);
var xIdx = Math.floor((x - xExtent[0]) / xSpan * (dimSize - 1));
var yIdx = Math.floor((y - yExtent[0]) / ySpan * (dimSize - 1));
var idx = yIdx * dimSize + xIdx;
tmp[idx] = tmp[idx] || 1;
}
var filledCount = 0;
for (var i = 0; i < tmp.length; i++) {
if (tmp[i]) {
filledCount++;
}
}
return filledCount / tmp.length;
};