blob: 6ab412692597eb20aedecb8507b216d696849619 [file] [log] [blame]
dojo.provide("dojo.charting.Series");
dojo.require("dojo.lang.common");
dojo.require("dojo.charting.Plotters");
dojo.charting.Series=function(_1){
var _2=_1||{length:1};
this.dataSource=_2.dataSource||null;
this.bindings={};
this.color=_2.color;
this.label=_2.label;
if(_2.bindings){
for(var p in _2.bindings){
this.addBinding(p,_2.bindings[p]);
}
}
};
dojo.extend(dojo.charting.Series,{bind:function(_4,_5){
this.dataSource=_4;
this.bindings=_5;
},addBinding:function(_6,_7){
this.bindings[_6]=_7;
},evaluate:function(_8){
var _9=[];
var a=this.dataSource.getData();
var l=a.length;
var _c=0;
var _d=l;
if(_8){
if(_8.between){
for(var i=0;i<l;i++){
var _f=this.dataSource.getField(a[i],_8.between.field);
if(_f>=_8.between.low&&_f<=_8.between.high){
var o={src:a[i],series:this};
for(var p in this.bindings){
o[p]=this.dataSource.getField(a[i],this.bindings[p]);
}
_9.push(o);
}
}
}else{
if(_8.from||_8.length){
if(_8.from){
_c=Math.max(_8.from,0);
if(_8.to){
_d=Math.min(_8.to,_d);
}
}else{
if(_8.length<0){
_c=Math.max((_d+length),0);
}else{
_d=Math.min((_c+length),_d);
}
}
for(var i=_c;i<_d;i++){
var o={src:a[i],series:this};
for(var p in this.bindings){
o[p]=this.dataSource.getField(a[i],this.bindings[p]);
}
_9.push(o);
}
}
}
}else{
for(var i=_c;i<_d;i++){
var o={src:a[i],series:this};
for(var p in this.bindings){
o[p]=this.dataSource.getField(a[i],this.bindings[p]);
}
_9.push(o);
}
}
if(_9.length>0&&typeof (_9[0].x)!="undefined"){
_9.sort(function(a,b){
if(a.x>b.x){
return 1;
}
if(a.x<b.x){
return -1;
}
return 0;
});
}
return _9;
},trends:{createRange:function(_14,len){
var idx=_14.length-1;
var _17=(len||_14.length);
return {"index":idx,"length":_17,"start":Math.max(idx-_17,0)};
},mean:function(_18,len){
var _1a=this.createRange(_18,len);
if(_1a.index<0){
return 0;
}
var _1b=0;
var _1c=0;
for(var i=_1a.index;i>=_1a.start;i--){
_1b+=_18[i].y;
_1c++;
}
_1b/=Math.max(_1c,1);
return _1b;
},variance:function(_1e,len){
var _20=this.createRange(_1e,len);
if(_20.index<0){
return 0;
}
var _21=0;
var _22=0;
var _23=0;
for(var i=_20.index;i>=_20.start;i--){
_21+=_1e[i].y;
_22+=Math.pow(_1e[i].y,2);
_23++;
}
return (_22/_23)-Math.pow(_21/_23,2);
},standardDeviation:function(_25,len){
return Math.sqrt(this.getVariance(_25,len));
},max:function(_27,len){
var _29=this.createRange(_27,len);
if(_29.index<0){
return 0;
}
var max=Number.MIN_VALUE;
for(var i=_29.index;i>=_29.start;i--){
max=Math.max(_27[i].y,max);
}
return max;
},min:function(_2c,len){
var _2e=this.createRange(_2c,len);
if(_2e.index<0){
return 0;
}
var min=Number.MAX_VALUE;
for(var i=_2e.index;i>=_2e.start;i--){
min=Math.min(_2c[i].y,min);
}
return min;
},median:function(_31,len){
var _33=this.createRange(_31,len);
if(_33.index<0){
return 0;
}
var a=[];
for(var i=_33.index;i>=_33.start;i--){
var b=false;
for(var j=0;j<a.length;j++){
if(_31[i].y==a[j]){
b=true;
break;
}
}
if(!b){
a.push(_31[i].y);
}
}
a.sort();
if(a.length>0){
return a[Math.ceil(a.length/2)];
}
return 0;
},mode:function(_38,len){
var _3a=this.createRange(_38,len);
if(_3a.index<0){
return 0;
}
var o={};
var ret=0;
var _3d=Number.MIN_VALUE;
for(var i=_3a.index;i>=_3a.start;i--){
if(!o[_38[i].y]){
o[_38[i].y]=1;
}else{
o[_38[i].y]++;
}
}
for(var p in o){
if(_3d<o[p]){
_3d=o[p];
ret=p;
}
}
return ret;
}}});