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
52 KiB

!function(a){"use strict";function b(){function a(a,b){a.attr("transform",function(a){return"translate("+(b(a)+q)+", 0)"})}function b(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function c(a){var b=a[0],c=a[a.length-1];return c>b?[b,c]:[c,b]}function d(a){for(var b=[],c=Math.ceil(a[0]);c<a[1];c++)b.push(c);return b.length>0&&b[0]>0&&b.unshift(b[0]-(b[1]-b[0])),b}function e(a,b){var c=a.length-1;return p>=c||b%Math.ceil(c/p)===0}function f(a){return a<t.length?t[a]:a}function h(a){var b=f(a);return r?r(b):b}function i(f){f.each(function(){var f,i,p=g.select(this),r=d(j.domain()),s=p.selectAll(".tick.major").data(r,String),t=s.enter().insert("g","path").attr("class","tick major").style("opacity",1e-6),u=g.transition(s.exit()).style("opacity",1e-6).remove(),v=g.transition(s).style("opacity",1),w=j.rangeExtent?j.rangeExtent():c(j.range()),x=p.selectAll(".domain").data([0]);x.enter().append("path").attr("class","domain");var y=g.transition(x),z=j.copy(),A=this.__chart__||z;this.__chart__=z,t.append("line"),t.append("text");var B=t.select("line"),C=v.select("line"),D=s.select("text"),E=t.select("text"),F=v.select("text");switch(q=(z(1)-z(0))/2,i=o?0:q,k){case"bottom":f=a,B.attr("y2",l),E.attr("y",Math.max(l,0)+n),C.attr("x1",i).attr("x2",i).attr("y2",l),F.attr("x",0).attr("y",Math.max(l,0)+n),D.attr("dy",".71em").style("text-anchor","middle"),D.text(function(a){return e(r,a)?h(a):""}),y.attr("d","M"+w[0]+","+m+"V0H"+w[1]+"V"+m);break;case"left":f=b,B.attr("x2",-l),E.attr("x",-(Math.max(l,0)+n)),C.attr("x2",-l).attr("y2",0),F.attr("x",-(Math.max(l,0)+n)).attr("y",q),D.attr("dy",".32em").style("text-anchor","end"),D.text(function(a){return e(r,a)?h(a):""}),y.attr("d","M"+-m+","+w[0]+"H0V"+w[1]+"H"+-m)}if(j.ticks)t.call(f,A),v.call(f,z),u.call(f,z);else{var G=z.rangeBand()/2,H=function(a){return z(a)+G};t.call(f,H),v.call(f,H)}})}var j=g.scale.linear(),k="bottom",l=6,m=6,n=3,o=!1,p=10,q=0,r=null,s=!0,t=[];return i.scale=function(a){return arguments.length?(j=a,i):j},i.orient=function(a){return arguments.length?(k=a in{top:1,right:1,bottom:1,left:1}?a+"":"bottom",i):k},i.categories=function(a){return arguments.length?(t=a,i):t},i.tickCentered=function(a){return arguments.length?(o=a,i):o},i.tickFormat=function(a){return arguments.length?(r=a,i):r},i.tickOffset=function(){return q},i.ticks=function(a){return arguments.length?(p=a,i):p},i.tickCulling=function(a){return arguments.length?(s=a,i):s},i}function c(a){return a||0===a}function d(a){return"undefined"==typeof a}function e(a){return"undefined"!=typeof a}var f=a.c3={},g=a.d3;f.generate=function(f){function h(a,b){if(!(a in f))throw Error(b)}function i(a,b){for(var c=f,d=0;d<a.length;d++){if(!(a[d]in c))return b;c=c[a[d]]}return c}function j(){Jg.attr("transform",yg.main),Jg.select(".x.axis").attr("transform",yg.x),Jg.select(".y2.axis").attr("transform",yg.y2),Jg.select(".chart-arcs").attr("transform",yg.arc)}function k(){gf&&(Kg.attr("transform",yg.context),Kg.select(".x.axis").attr("transform",yg.subx))}function l(a){var b=a!==!1?250:0;kf&&Lg.transition().duration(b).attr("transform",yg.legend)}function m(a){j(a),k(a),l(a)}function n(){pe=q(),qe=r(),re=D(),se=C(),ie={top:of&&Ff?20:0,right:t(),bottom:20+(of?0:hf)+(zg?E():re),left:(of?hf+Bg:0)+s()},le=pe-ie.left-ie.right,ne=qe-ie.top-ie.bottom,je={top:of?ie.top:qe-hf-(zg?0:re),right:0/0,bottom:20+(zg?0:re),left:of?Ag:ie.left},me=of?ie.left-Ag-Bg:le,oe=of?ne:qe-je.top-je.bottom,ke={top:zg?ie.top:qe+E()-re,right:0/0,bottom:0,left:zg?pe-se:0},o(),zg&&Oc(Ud.data.targets)&&(ke.left=le/2+ue)}function o(){ue=ne/2,te=.95*ue,ve=Nc(Ud.data.targets)?.6*te:0}function p(){var a=g.select(".y.axis").node().getBoundingClientRect(),b=g.select(Zd).node().getBoundingClientRect();return a.right-b.left-s()}function q(){return $d?$d:v()}function r(){var a=_d?_d:w();return a>0?a:320}function s(){return Oc(Ud.data.targets)?0:ae?ae:Bf?1:u("y")}function t(){return Oc(Ud.data.targets)?0:be?be:zg?se*(Ff&&!of?1.25:1):Ff?Jf||of?1:u("y2"):1}function u(){var a=T();return a.isInner?40:60}function v(){return+g.select(Zd).style("width").
}).style("opacity",1),j.exit().transition().duration(F).style("opacity",0).remove()),m=Jg.selectAll(".-bars").selectAll(".-bar").data(Wc),m.enter().append("path").attr("d",A).style("stroke","none").style("opacity",0).style("fill",function(a){return sg(a.id)}).attr("class",cc),m.style("opacity",fc).transition().duration(F).attr("d",A).style("opacity",1),m.exit().transition().duration(G).style("opacity",0).remove(),o=Jg.selectAll(".-texts").selectAll(".-text").data(Yc),o.enter().append("text").attr("class",Ub).attr("text-anchor",function(a){return of?a.value<0?"end":"start":"middle"}).style("stroke","none").style("fill-opacity",0).text(function(a){return pc(a.value)}),o.style("fill-opacity",gc).transition().duration(F).attr("x",D).attr("y",E).style("fill-opacity",ic),o.exit().transition().duration(G).style("fill-opacity",0).remove(),Jg.selectAll(".-line").style("opacity",fc).transition().duration(F).attr("d",Dg).style("opacity",1),Jg.selectAll(".-area").style("opacity",0).transition().duration(F).attr("d",Eg).style("opacity",Pg),l=Jg.selectAll(".-circles").selectAll(".-circle").data(Xc),l.enter().append("circle").attr("class",bc).style("opacity",0).attr("r",Uf),l.style("opacity",fc).transition().duration(F).style("opacity",hc).attr("cx",of?Cc:Bc).attr("cy",of?Bc:Cc),l.exit().remove(),Jg.selectAll(".chart-arc").select(".-arc").attr("transform",x?"scale(0)":"").style("opacity",function(a){return a===this._current?0:1}).transition().duration(F).attrTween("d",function(a){var b=bb(a);if(!b)return function(){return"M 0 0"};var c=g.interpolate(this._current,b);return this._current=c(0),function(a){return eb(c(a),!0)}}).attr("transform",x?"scale(1)":"").style("opacity",1),Jg.selectAll(".chart-arc").select("text").attr("transform",fb).style("opacity",0).transition().duration(F).text(hb).style("opacity",function(a){return Vc(a.data)?1:0}),Jg.select(".chart-arcs-title").style("opacity",Nc(Ud.data.targets)?1:0),gf&&(null!==g.event&&"zoom"===g.event.type&&Cg.extent(Ie.orgDomain()).update(),v&&(Kg.select(".x.axis").style("opacity",I?0:1).transition().duration(F).call(Re),Cg.empty()||Cg.extent(Ie.orgDomain()).update(),C=rd(H,!0),p=Kg.selectAll(".-bars").selectAll(".-bar").data(Wc),p.enter().append("path").attr("d",C).style("stroke","none").style("fill",function(a){return sg(a.id)}).attr("class",cc),p.style("opacity",fc).transition().duration(F).attr("d",C).style("opacity",1),p.exit().transition().duration(F).style("opacity",0).remove(),Kg.selectAll(".-line").style("opacity",fc).transition().duration(F).attr("d",Fg).style("opacity",1))),Jg.selectAll(".selected-circles").filter(function(a){return Rc(a)}).selectAll("circle").remove(),Jg.selectAll(".selected-circle").transition().duration(F).attr("cx",of?Cc:Bc).attr("cy",of?Bc:Cc),Te?(q=Jg.select(".event-rects").selectAll(".event-rect").data([0]),zd(q.enter()),q.attr("x",0).attr("y",0).attr("width",le).attr("height",ne)):(og?(t=function(a,b){var c=Ib(b),d=Jb(b);return(Ie(d?d:a.x+50)-Ie(c?c:a.x-50))/2},s=function(a,b){var c=Ib(b);return(Ie(a.x)+Ie(c?c:a.x-50))/2}):(t=B(),s=function(a){return Ie(a.x)-t/2}),r=Lb(),Jg.select(".event-rects").datum(r?r.values:[]),q=Jg.select(".event-rects").selectAll(".event-rect").data(function(a){return a}),yd(q.enter()),q.attr("class",ec).attr("x",of?0:s).attr("y",of?s:0).attr("width",of?le:t).attr("height",of?t:ne),q.exit().remove()),n=Jg.select(".regions").selectAll("rect.region").data(cg),n.enter().append("rect").style("fill-opacity",0),n.attr("class",dc).attr("x",of?0:wb).attr("y",of?wb:ie.top).attr("width",of?le:xb).attr("height",of?xb:ne).transition().duration(F).style("fill-opacity",function(a){return c(a.opacity)?a.opacity:.1}),n.exit().transition().duration(F).style("fill-opacity",0).remove(),kf&&Od(Ud.data.targets,{withTransition:w}),Mb().forEach(function(a){Qg[a]=!0})}function Fd(){Ed({withTransition:!1,withY:!1,withSubchart:!1,withUpdateXDomain:!0})}function Gd(){return"mousemove"===g.event.sourceEvent.type&&Gg.altDomain?(Ie.domain(Gg.altDomain),void Gg.scale(Ie).updateScaleExtent()):(ng&&Ie.orgDomain()[0]===Og[0]&&Ie.domain([Og[0]-1e-10,Ie.orgDoma