51 lines
1.4 KiB
Java
51 lines
1.4 KiB
Java
module.exports = {
|
|
_initDefaultCfg: function _initDefaultCfg() {
|
|
this.xField = null; // 调整对应的 x 方向对应的字段名称
|
|
|
|
this.yField = null; // 调整对应的 y 方向对应的字段名称
|
|
|
|
this.height = null; // 仅有一个维度调整时,总的高度
|
|
|
|
this.size = 10; // 单个点的大小
|
|
|
|
this.reverseOrder = false; // 是否反序进行层叠
|
|
|
|
this.adjustNames = ['y']; // Only support stack y
|
|
},
|
|
processOneDimStack: function processOneDimStack(dataArray) {
|
|
var self = this;
|
|
var xField = self.xField;
|
|
var yField = self.yField || 'y';
|
|
var height = self.height;
|
|
var stackY = {}; // 如果层叠的顺序翻转
|
|
|
|
if (self.reverseOrder) {
|
|
dataArray = dataArray.slice(0).reverse();
|
|
}
|
|
|
|
for (var i = 0, len = dataArray.length; i < len; i++) {
|
|
var data = dataArray[i]; // cates
|
|
|
|
for (var j = 0, dataLen = data.length; j < dataLen; j++) {
|
|
var item = data[j];
|
|
var size = item.size || self.size;
|
|
var stackHeight = size * 2 / height;
|
|
var x = item[xField];
|
|
|
|
if (!stackY[x]) {
|
|
stackY[x] = stackHeight / 2;
|
|
}
|
|
|
|
item[yField] = stackY[x];
|
|
stackY[x] += stackHeight;
|
|
}
|
|
}
|
|
},
|
|
processAdjust: function processAdjust(dataArray) {
|
|
if (this.yField) {
|
|
this.processStack(dataArray);
|
|
} else {
|
|
this.processOneDimStack(dataArray);
|
|
}
|
|
}
|
|
}; |