radar.js 6.3 KB

12345678910
  1. (function(){var c=window.AmCharts;c.AmRadarChart=c.Class({inherits:c.AmCoordinateChart,construct:function(a){this.type="radar";c.AmRadarChart.base.construct.call(this,a);this.cname="AmRadarChart";this.marginRight=this.marginBottom=this.marginTop=this.marginLeft=0;this.radius="35%";c.applyTheme(this,a,this.cname)},initChart:function(){c.AmRadarChart.base.initChart.call(this);this.dataChanged&&(this.updateData(),this.dataChanged=!1,this.dispatchDataUpdated=!0);this.drawChart()},updateData:function(){this.parseData();
  2. var a=this.graphs,b;for(b=0;b<a.length;b++)a[b].data=this.chartData},updateGraphs:function(){var a=this.graphs,b;for(b=0;b<a.length;b++){var c=a[b];c.index=b;c.width=this.realRadius;c.height=this.realRadius;c.x=this.marginLeftReal;c.y=this.marginTopReal}},parseData:function(){c.AmRadarChart.base.parseData.call(this);this.parseSerialData(this.dataProvider)},updateValueAxes:function(){var a=this.valueAxes,b;for(b=0;b<a.length;b++){var d=a[b];d.axisRenderer=c.RadAxis;d.guideFillRenderer=c.RadarFill;
  3. d.axisItemRenderer=c.RadItem;d.autoGridCount=!1;d.x=this.marginLeftReal;d.y=this.marginTopReal;d.width=this.realRadius;d.height=this.realRadius}},drawChart:function(){c.AmRadarChart.base.drawChart.call(this);var a=this.updateWidth(),b=this.updateHeight(),d=this.marginTop+this.getTitleHeight(),f=this.marginLeft,l=this.marginBottom,m=this.marginRight,e=b-d-l;this.marginLeftReal=f+(a-f-m)/2;this.marginTopReal=d+e/2;this.realRadius=c.toCoordinate(this.radius,Math.min(a-f-m,b-d-l),e);this.updateValueAxes();
  4. this.updateGraphs();a=this.chartData;if(c.ifArray(a)){if(0<this.realWidth&&0<this.realHeight){a=a.length-1;d=this.valueAxes;for(b=0;b<d.length;b++)d[b].zoom(0,a);d=this.graphs;for(b=0;b<d.length;b++)d[b].zoom(0,a);(a=this.legend)&&a.invalidateSize()}}else this.cleanChart();this.dispDUpd();this.chartCreated=!0;this.gridSet.toBack();this.axesSet.toBack();this.set.toBack()},formatString:function(a,b,d){var f=b.graph;-1!=a.indexOf("[[category]]")&&(a=a.replace(/\[\[category\]\]/g,String(b.serialDataItem.category)));
  5. f=f.numberFormatter;f||(f=this.nf);a=c.formatValue(a,b.values,["value"],f,"",this.usePrefixes,this.prefixesOfSmallNumbers,this.prefixesOfBigNumbers);-1!=a.indexOf("[[")&&(a=c.formatDataContextValue(a,b.dataContext));return a=c.AmRadarChart.base.formatString.call(this,a,b,d)},cleanChart:function(){c.callMethod("destroy",[this.valueAxes,this.graphs])}})})();(function(){var c=window.AmCharts;c.RadAxis=c.Class({construct:function(a){var b=a.chart,d=a.axisThickness,f=a.axisColor,l=a.axisAlpha,m=a.x,e=a.y;this.set=b.container.set();b.axesSet.push(this.set);var p=a.axisTitleOffset,h=a.radarCategoriesEnabled,k=a.chart.fontFamily,n=a.fontSize;void 0===n&&(n=a.chart.fontSize);var q=a.color;void 0===q&&(q=a.chart.color);if(b){this.axisWidth=a.height;var t=b.chartData,C=t.length,u;for(u=0;u<C;u++){var g=180-360/C*u,r=m+this.axisWidth*Math.sin(g/180*Math.PI),v=
  6. e+this.axisWidth*Math.cos(g/180*Math.PI);0<l&&(r=c.line(b.container,[m,r],[e,v],f,l,d),this.set.push(r),c.setCN(b,r,a.bcn+"line"));if(h){var z="start",r=m+(this.axisWidth+p)*Math.sin(g/180*Math.PI),v=e+(this.axisWidth+p)*Math.cos(g/180*Math.PI);if(180==g||0===g)z="middle",r-=5;0>g&&(z="end",r-=10);180==g&&(v-=5);0===g&&(v+=5);g=c.text(b.container,t[u].category,q,k,n,z);g.translate(r+5,v);this.set.push(g);c.setCN(b,g,a.bcn+"title")}}}}})})();(function(){var c=window.AmCharts;c.RadItem=c.Class({construct:function(a,b,d,f,l,m,e,p){f=a.chart;void 0===d&&(d="");var h=a.chart.fontFamily,k=a.fontSize;void 0===k&&(k=a.chart.fontSize);var n=a.color;void 0===n&&(n=a.chart.color);var q=a.chart.container;this.set=l=q.set();var t=a.axisColor,C=a.axisAlpha,u=a.tickLength,g=a.gridAlpha,r=a.gridThickness,v=a.gridColor,z=a.dashLength,F=a.fillColor,D=a.fillAlpha,G=a.labelsEnabled;m=a.counter;var H=a.inside,I=a.gridType,w,L=a.labelOffset,A;b-=a.height;
  7. var y,B=a.x,J=a.y;e?(G=!0,void 0!==e.id&&(A=f.classNamePrefix+"-guide-"+e.id),isNaN(e.tickLength)||(u=e.tickLength),void 0!=e.lineColor&&(v=e.lineColor),isNaN(e.lineAlpha)||(g=e.lineAlpha),isNaN(e.dashLength)||(z=e.dashLength),isNaN(e.lineThickness)||(r=e.lineThickness),!0===e.inside&&(H=!0),void 0!==e.boldLabel&&(p=e.boldLabel)):d||(g/=3,u/=2);var K="end",E=-1;H&&(K="start",E=1);var x;G&&(x=c.text(q,d,n,h,k,K,p),x.translate(B+(u+3+L)*E,b),l.push(x),c.setCN(f,x,a.bcn+"label"),e&&c.setCN(f,x,"guide"),
  8. c.setCN(f,x,A,!0),this.label=x,y=c.line(q,[B,B+u*E],[b,b],t,C,r),l.push(y),c.setCN(f,y,a.bcn+"tick"),e&&c.setCN(f,y,"guide"),c.setCN(f,y,A,!0));b=Math.round(a.y-b);p=[];h=[];if(0<g){if("polygons"==I){w=a.data.length;for(k=0;k<w;k++)n=180-360/w*k,p.push(b*Math.sin(n/180*Math.PI)),h.push(b*Math.cos(n/180*Math.PI));p.push(p[0]);h.push(h[0]);g=c.line(q,p,h,v,g,r,z)}else g=c.circle(q,b,"#FFFFFF",0,r,v,g);g.translate(B,J);l.push(g);c.setCN(f,g,a.bcn+"grid");c.setCN(f,g,A,!0);e&&c.setCN(f,g,"guide")}if(1==
  9. m&&0<D&&!e&&""!==d){e=a.previousCoord;if("polygons"==I){for(k=w;0<=k;k--)n=180-360/w*k,p.push(e*Math.sin(n/180*Math.PI)),h.push(e*Math.cos(n/180*Math.PI));w=c.polygon(q,p,h,F,D)}else w=c.wedge(q,0,0,0,360,b,b,e,0,{fill:F,"fill-opacity":D,stroke:"#000","stroke-opacity":0,"stroke-width":1});l.push(w);w.translate(B,J);c.setCN(f,w,a.bcn+"fill");c.setCN(f,w,A,!0)}!1===a.visible&&(y&&y.hide(),x&&x.hide());""!==d&&(a.counter=0===m?1:0,a.previousCoord=b)},graphics:function(){return this.set},getLabel:function(){return this.label}})})();(function(){var c=window.AmCharts;c.RadarFill=c.Class({construct:function(a,b,d,f){b-=a.axisWidth;d-=a.axisWidth;var l=Math.max(b,d);b=d=Math.min(b,d);d=a.chart;var m=d.container,e=f.fillAlpha,p=f.fillColor,l=Math.abs(l-a.y);b=Math.abs(b-a.y);var h=Math.max(l,b);b=Math.min(l,b);var l=h,h=f.angle+90,k=f.toAngle+90;isNaN(h)&&(h=0);isNaN(k)&&(k=360);this.set=m.set();void 0===p&&(p="#000000");isNaN(e)&&(e=0);if("polygons"==a.gridType){var k=[],n=[],q=a.data.length,t;for(t=0;t<q;t++)h=180-360/q*t,k.push(l*
  10. Math.sin(h/180*Math.PI)),n.push(l*Math.cos(h/180*Math.PI));k.push(k[0]);n.push(n[0]);for(t=q;0<=t;t--)h=180-360/q*t,k.push(b*Math.sin(h/180*Math.PI)),n.push(b*Math.cos(h/180*Math.PI));m=c.polygon(m,k,n,p,e)}else m=c.wedge(m,0,0,h,k-h,l,l,b,0,{fill:p,"fill-opacity":e,stroke:"#000","stroke-opacity":0,"stroke-width":1});c.setCN(d,m,"guide-fill");f.id&&c.setCN(d,m,"guide-fill-"+f.id);this.set.push(m);m.translate(a.x,a.y);this.fill=m},graphics:function(){return this.set},getLabel:function(){}})})();