Quite good looking graph derived from d3.js http://c3js.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
60 KiB

!function(a){"use strict";function b(a){return a||0===a}function c(a){return"undefined"==typeof a}function d(a){return"undefined"!=typeof a}var e={};e.generate=function(e){function f(a,b){if(!(a in e))throw Error(b)}function g(a,b){var c,d,f,g=e;for(c=0;c<a.length;c++){if("object"==typeof g&&!(a[c]in g))return b;if(d=c===a.length-1,f=g[a[c]],!d&&"object"!=typeof f||d&&"object"!=typeof b&&"object"==typeof f)return b;g=f}return g}function h(a){return"url("+document.URL.split("#")[0]+"#"+a+")"}function i(){bi.attr("transform",Oh.main),bi.select("."+Se.axisX).attr("transform",Oh.x),bi.select("."+Se.axisY).attr("transform",Oh.y),bi.select("."+Se.axisY2).attr("transform",Oh.y2),bi.select("."+Se.chartArcs).attr("transform",Oh.arc)}function j(){jg&&(ci.attr("transform",Oh.context),ci.select("."+Se.axisX).attr("transform",Oh.subx))}function k(a){var b=a!==!1?250:0;mg&&di.transition().duration(b).attr("transform",Oh.legend)}function l(a){i(a),j(a),k(a)}function m(){kf=p(),lf=q(),mf=O(),nf=N(),cf={top:qg?u("y2"):Vh,right:s(),bottom:u(qg?"y":"x")+(qg?0:kg)+(Ph?0:mf),left:(qg?kg+Uh:0)+r()},ff=kf-cf.left-cf.right,hf=lf-cf.top-cf.bottom,0>ff&&(ff=0),0>hf&&(hf=0),df={top:qg?cf.top:lf-kg-(Ph?0:mf),right:0/0,bottom:20+(Ph?0:mf),left:qg?Th:cf.left},gf=qg?cf.left-Th-Uh:ff,jf=qg?hf:lf-df.top-df.bottom,0>gf&&(gf=0),0>jf&&(jf=0),ef={top:Ph?0:lf-mf,right:0/0,bottom:0,left:Ph?kf-nf:0},n(),Ph&&Cd(Ne.data.targets)&&(ef.left=ff/2+pf)}function n(){pf=hf/2,of=.95*pf,qf=Bd(Ne.data.targets)?.6*of:0}function o(){var a=qg?Se.axisX:Se.axisY,b=Me.select("."+a).node(),c=b?b.getBoundingClientRect():{right:0},d=Me.select(Te).node().getBoundingClientRect(),e=c.right-d.left-r();return e>0?e:0}function p(){return Ue?Ue:v()}function q(){var a=Ve?Ve:w();return a>0?a:320}function r(){return Cd(Ne.data.targets)?0:We?We:qg||!Bg||Gg?1:t("y")}function s(){var a=1;return Cd(Ne.data.targets)?0:Xe?Xe:Ph?nf+(Kg&&!qg?t("y2"):a):Kg?Pg||qg?a:t("y2"):a}function t(a){var b=db(a);return b.isInner?20+wb(a):40+wb(a)}function u(a){return"y"!==a||Bg?"y2"!==a||Kg?(db(a).isInner?30:40)+("y2"===a?-10:0):Vh:mg&&!Ph?10:1}function v(){return+Me.select(Te).style("width").replace("px","")}function w(){return+Me.select(Te).style("height").replace("px","")}function x(a){return a?-5:-(cf.left-1)}function y(a){return a?-20:-1}function z(){return x(!qg)}function A(){return y(!qg)}function B(){return x(qg)}function C(){return y(qg)}function D(a){return a?ff+2+4:cf.left+20}function E(a){return a?80:hf+2}function F(){return D(!qg)}function G(){return E(!qg)}function H(){return D(qg)}function I(){return E(qg)}function J(){var a=qg?hf:ff,b=pc(),c=Rb()*(yd(Ne.data.targets)?(b-(Bh?.25:1))/b:.98);return b>1?a*c/(b-1):a}function K(a){Qh=a}function L(a){Rh=a}function M(a){Sh=a}function N(){return mg?Ph?Rh*(Qh+1):kf:0}function O(){return mg?Ph?lf:Sh*(Qh+1):0}function P(){var a,b,c=!Df;vf=qg?1:0,wf=qg?hf:ff,xf=qg?0:hf,yf=qg?ff:1,zf=vf,Af=wf,Bf=qg?0:jf,Cf=qg?gf:1,Df=R(vf,wf,c?void 0:Df.domain(),function(){return Jf.tickOffset()}),Ef=S(xf,yf),Ff=S(xf,yf),Gf=R(vf,wf,gi,function(a){return a%1?0:Mf.tickOffset()}),Hf=S(Bf,Cf),If=S(Bf,Cf),a=Y(),b=Z(),Jf=V(Df,Kh,a,b),Mf=V(Gf,Nh,a,b),Kf=W(Ef,Lh,Hg,Jg),Lf=W(Ff,Mh,Qg,Sg),c||(Wh.scale(Gf),Ye&&$h.scale(Df)),Q()}function Q(){rf=zb(),sf=Ab(),tf=Ab(.98)}function R(a,b,e,f){var g=(Ah?Me.time.scale():Me.scale.linear()).range([a,b]);if(g.orgDomain=function(){return g.domain()},d(e)&&g.domain(e),c(f)&&(f=function(){return 0}),Bh){var h,i=g;g=function(a){return i(a)+f(a)};for(h in i)g[h]=i[h];g.orgDomain=function(){return i.domain()},g.domain=function(a){return arguments.length?(i.domain(a),g):(a=i.domain(),[a[0],a[1]+1])}}return g}function S(a,b){return Me.scale.linear().range([a,b])}function T(a){return"y2"===X(a)?Ff:Ef}function U(a){return"y2"===X(a)?If:Hf}function V(a,b,c,d){var e=(Bh?xb():Me.svg.axis()).scale(a).orient(b);return e.tickFormat(c).ticks(d),Bh?e.tickCentered(tg):e.tickOffset=function(){var a=qg?hf:ff;return a*Rb()/pc()/2},Bh&&e.categories(sg),e}function W(a,b,c,d){return Me.svg.axis().scale(a).orient(b).tickFormat(c).ticks(d).outerTickSize(0)}function X(a){re
c.classed(Qe)&&d(!1,c.classed(Qe,!1),a,b)}),e.classed(Qe,!f),d(!f,e,b,c)),cg(b,a))}function re(a){var b,c,d,e,f,g,h,i;Cd(Ne.data.targets)||$f&&(!Ye||$h.altDomain)&&bg&&(b=Dh[0],c=Dh[1],d=a[0],e=a[1],f=Math.min(b,d),g=Math.max(b,d),h=_f?cf.top:Math.min(c,e),i=_f?hf:Math.max(c,e),bi.select("."+Se.dragarea).attr("x",f).attr("y",h).attr("width",g-f).attr("height",i-h),bi.selectAll("."+Se.shapes).selectAll("."+Se.shape).filter(function(a){return ag(a)}).each(function(a,b){var c,d,e,j,k,l,m=Me.select(this),n=m.classed(Qe),o=m.classed(Re),p=!1;"circle"===this.nodeName?(c=1*m.attr("cx"),d=1*m.attr("cy"),k=Yd,p=c>f&&g>c&&d>h&&i>d):"path"===this.nodeName&&(l=hd(this),c=l.x,d=l.y,e=l.width,j=l.height,k=_d,p=!(c>g||f>c+e||d>i||h>d+j)),p^o&&(m.classed(Re,!o),m.classed(Qe,!n),k(!n,m,a,b))}))}function se(a){Cd(Ne.data.targets)||$f&&(Dh=a,bi.select("."+Se.chart).append("rect").attr("class",Se.dragarea).style("opacity",.1),Eh=!0,hg())}function te(){Cd(Ne.data.targets)||$f&&(bi.select("."+Se.dragarea).transition().duration(100).style("opacity",0).remove(),bi.selectAll("."+Se.shape).classed(Re,!1),Eh=!1,ig())}function ue(a){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H=rd(),I=Cd(Ne.data.targets),K=vc(Ne.data.targets);if(0!==K.length){if(a=d(a)?a:{},t=d(a.withY)?a.withY:!0,u=d(a.withSubchart)?a.withSubchart:!0,v=d(a.withTransition)?a.withTransition:!0,w=d(a.withTransform)?a.withTransform:!1,x=d(a.withUpdateXDomain)?a.withUpdateXDomain:!1,y=d(a.withUpdateOrgXDomain)?a.withUpdateOrgXDomain:!1,z=d(a.withLegend)?a.withLegend:!1,E=v?bf:0,F=d(a.durationForExit)?a.durationForExit:E,G=d(a.durationForAxis)?a.durationForAxis:E,z&&mg&&Ie(Ne.data.targets,a),y&&(Df.domain(Me.extent(Vb(K))),gi=Df.domain(),Ye&&$h.scale(Df).updateScaleExtent(),Gf.domain(Df.domain()),Wh.scale(Gf)),x&&(Df.domain(Wh.empty()?gi:Wh.extent()),Ye&&$h.scale(Df).updateScaleExtent()),Ef.domain(Qb(K,"y")),Ff.domain(Qb(K,"y2")),bi.select("."+Se.axisX).style("opacity",I?0:1).transition().duration(G).call(Jf),bi.select("."+Se.axisY).style("opacity",I?0:1).transition().duration(G).call(Kf),bi.select("."+Se.axisY2).style("opacity",I?0:1).transition().duration(G).call(Lf),A=he(H),C=ie(H,!0),D=ie(H,!1),bi.select("."+Se.axisX+" ."+Se.axisXLabel).attr("x",kb),bi.select("."+Se.axisY+" ."+Se.axisYLabel).attr("x",lb).attr("dy",rb),bi.select("."+Se.axisY2+" ."+Se.axisY2Label).attr("x",mb).attr("dy",sb),Hf.domain(Ef.domain()),If.domain(Ff.domain()),ei.style("display","none"),bi.select("line."+Se.xgridFocus).style("visibility","hidden"),Tg){if("year"===Ug){e=[];for(var L=Vb(),M=L[0].getFullYear(),N=L[1].getFullYear(),O=M;N>=O;O++)e.push(new Date(O+"-01-01 00:00:00"))}else e=Df.ticks(10);c=bi.select("."+Se.xgrids).selectAll("."+Se.xgrid).data(e),c.enter().append("line").attr("class",Se.xgrid),c.attr("x1",qg?0:function(a){return Df(a)-Jf.tickOffset()}).attr("x2",qg?ff:function(a){return Df(a)-Jf.tickOffset()}).attr("y1",qg?function(a){return Df(a)-Jf.tickOffset()}:cf.top).attr("y2",qg?function(a){return Df(a)-Jf.tickOffset()}:hf).style("opacity",function(){return+Me.select(this).attr(qg?"y1":"x1")===(qg?hf:0)?0:1}),c.exit().remove()}Sd(Vg)&&(f=bi.select("."+Se.xgridLines).selectAll("."+Se.xgridLine).data(Vg),g=f.enter().append("g").attr("class",function(a){return Se.xgridLine+(a.class?a.class:"")}),g.append("line").style("opacity",0),g.append("text").attr("text-anchor","end").attr("transform",qg?"":"rotate(-90)").attr("dx",qg?0:-cf.top).attr("dy",-5).style("opacity",0),f.select("line").transition().duration(E).attr("x1",qg?0:$c).attr("x2",qg?ff:$c).attr("y1",qg?$c:cf.top).attr("y2",qg?$c:hf).style("opacity",1),f.select("text").transition().duration(E).attr("x",qg?ff:0).attr("y",$c).text(function(a){return a.text}).style("opacity",1),f.exit().transition().duration(E).style("opacity",0).remove()),t&&Wg&&(h=bi.select("."+Se.ygrids).selectAll("."+Se.ygrid).data(Ef.ticks(Yg)),h.enter().append("line").attr("class",Se.ygrid),h.attr("x1",qg?Ef:0).attr("x2",qg?Ef:ff).attr("y1",qg?0:Ef).attr("y2",qg?hf:Ef),h.exit().remove()),t&&Sd(Xg)&&(i=bi.select("."+Se.ygridLines).selectAll("."+Se.ygrid