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.

3 lines
68 KiB

11 years ago
!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={version:"0.1.32"},f={target:"c3-target",chart:"c3-chart",chartLine:"c3-chart-line",chartLines:"c3-chart-lines",chartBar:"c3-chart-bar",chartBars:"c3-chart-bars",chartText:"c3-chart-text",chartTexts:"c3-chart-texts",chartArc:"c3-chart-arc",chartArcs:"c3-chart-arcs",chartArcsTitle:"c3-chart-arcs-title",selectedCircle:"c3-selected-circle",selectedCircles:"c3-selected-circles",eventRect:"c3-event-rect",eventRects:"c3-event-rects",eventRectsSingle:"c3-event-rects-single",eventRectsMultiple:"c3-event-rects-multiple",zoomRect:"c3-zoom-rect",brush:"c3-brush",focused:"c3-focused",region:"c3-region",regions:"c3-regions",tooltip:"c3-tooltip",tooltipName:"c3-tooltip-name",shape:"c3-shape",shapes:"c3-shapes",line:"c3-line",bar:"c3-bar",bars:"c3-bars",circle:"c3-circle",circles:"c3-circles",arc:"c3-arc",area:"c3-area",text:"c3-text",texts:"c3-texts",grid:"c3-grid",xgrid:"c3-xgrid",xgrids:"c3-xgrids",xgridLine:"c3-xgrid-line",xgridLines:"c3-xgrid-lines",xgridFocus:"c3-xgrid-focus",ygrid:"c3-ygrid",ygrids:"c3-ygrids",ygridLine:"c3-ygrid-line",ygridLines:"c3-ygrid-lines",axisX:"c3-axis-x",axisXLabel:"c3-axis-x-label",axisY:"c3-axis-y",axisYLabel:"c3-axis-y-label",axisY2:"c3-axis-y2",axisY2Label:"c3-axis-y2-label",legendItem:"c3-legend-item",legendItemEvent:"c3-legend-item-event",legendItemTile:"c3-legend-item-tile",legendItemHidden:"c3-legend-item-hidden",dragarea:"c3-dragarea",EXPANDED:"_expanded_",SELECTED:"_selected_",INCLUDED:"_included_"};e.generate=function(e){function g(a,b){if(!(a in e))throw Error(b)}function h(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&&null!==f)return b;g=f}return g}function i(a){return"url("+document.URL.split("#")[0]+"#"+a+")"}function j(a,b){var c=a!==!1?250:0,d=b&&b.axisX?b.axisX:ej.select("."+f.axisX).transition().duration(c),e=b&&b.axisY?b.axisY:ej.select("."+f.axisY).transition().duration(c),g=b&&b.axisYs?b.axisY2:ej.select("."+f.axisY2).transition().duration(c);ej.attr("transform",Qi.main),d.attr("transform",Qi.x),e.attr("transform",Qi.y),g.attr("transform",Qi.y2),ej.select("."+f.chartArcs).attr("transform",Qi.arc)}function k(a,b){var c=a!==!1?250:0,d=b&&b.axisSubX?b.axisSubX:fj.select("."+f.axisX).transition().duration(c);fj.attr("transform",Qi.context),d.attr("transform",Qi.subx)}function l(a){var b=a!==!1?250:0;gj.transition().duration(b).attr("transform",Qi.legend)}function m(a,b){j(a,b),Sg&&k(a,b),l(a)}function n(){var a=Q(),b=P(),c=Ri?0:a,d=_g?0:w("x"),e=Sg?Tg+d:0;Tf=r(),Uf=s(),_g?(Mf={top:w("y2"),right:u(),bottom:w("y")+c,left:e+t()},Nf={top:Mf.top,right:0/0,bottom:20+c,left:Wi}):(Mf={top:4,right:u(),bottom:d+e+c,left:t()},Nf={top:Uf-e-c,right:0/0,bottom:d+c,left:Mf.left}),Of={top:Ri?0:Uf-a,right:0/0,bottom:0,left:Ri?Tf-b:0},Pf=Tf-Mf.left-Mf.right,Rf=Uf-Mf.top-Mf.bottom,0>Pf&&(Pf=0),0>Rf&&(Rf=0),Qf=_g?Mf.left-Wi-Xi:Pf,Sf=_g?Rf:Uf-Nf.top-Nf.bottom,0>Qf&&(Qf=0),0>Sf&&(Sf=0),p(),Ri&&ee(xf.data.targets)&&(Of.left=Pf/2+Wf)}function o(){ej.select("line."+f.xgridFocus).attr("x1",_g?0:-10).attr("x2",_g?Pf:-10).attr("y1",_g?-10:Mf.top).attr("y2",_g?-10:Rf)}function p(){Wf=Rf/2,Vf=.95*Wf,Xf=de(xf.data.targets)?.6*Vf:0}function q(){var a=_g?f.axisX:f.axisY,b=ej.select("."+a).node(),c=b?b.getBoundingClientRect():{right:0},d=wf.select(zf).node().getBoundingClientRect(),e=c.right-d.left-t();return e>0?e:0}function r(){return Af?Af:x()}function s(){var a=Bf?Bf:y();return a>0?a:320}function t(){return ee(xf.data.targets)?0:Cf?Cf:_g?ah?v("x"):1:!sh||xh?1:v("y")}function u(){var a=1;return ee(xf.data.targets)?0:Df?Df:Ri?P()+(Bh&&!_g?v("y2"):a):Bh?Gh||_g?a:v("y2"):a}function v(a){var b=jb(a);return b.isInner?20+Cb(a):40+Cb(a)}function w(a){return"x"!==a||ah?"x"===a&&ph?ph:"y"!==a||sh?"y2"!==a||Bh?(jb(a).isInner?30:40)+("y2"===a?-10:0):Yi:Vg&&!Ri?10:1:0}function x(){return+wf.select(zf).style("width").replace("px","")}function y(){r
}hj.html(oi(xf.data.targets.map(function(a){return pc(a.values[qi])}),$(),wd(ee(xf.data.targets)),Hi)),hj.style("top",ri.top).style("left",ri.left).style("display","block")}null==a.onresize&&(a.onresize=bf()),a.onresize.add&&(a.onresize.add(Jf),a.onresize.add(function(){df({withLegend:!0,withTransition:!1,withTransitionForTransform:!1})}),a.onresize.add(Kf))}function Ue(a){a.append("rect").attr("class",fd).style("cursor",Hg&&Ig?"pointer":null).on("mouseover",function(a,b){if(!Ci&&!ee(xf.data.targets)){var c,d,e=xf.data.targets.map(function(a){return pc(a.values[b])});if(Object.keys(wg).length>0){d=[];for(var g in wg)for(c=0;c<e.length;c++)if(e[c].id===g){d.push(e[c]),e.shift(c);break}e=d.concat(e)}Th&&Ie(b),Le(b),ej.selectAll("."+f.shape+"-"+b).each(function(a){Mg(a)})}}).on("mouseout",function(a,b){ee(xf.data.targets)||(Sd(),Qd(),Je(b),Me(),ej.selectAll("."+f.shape+"-"+b).each(function(a){Ng(a)}))}).on("mousemove",function(a,b){var c;Ci||ee(xf.data.targets)||(c=Ic(xf.data.targets).map(function(a){return pc(a.values[b])}),Pd(c,wf.mouse(this)),Rd(c),Hg&&(Ig||ej.selectAll("."+f.shape+"-"+b).filter(function(a){return Jg(a)}).each(function(){var a=wf.select(this).classed(f.EXPANDED,!0);"circle"===this.nodeName&&a.attr("r",Uh),cj.select("."+f.eventRect+"-"+b).style("cursor",null)}).filter(function(){return"circle"===this.nodeName?se(this,Vh):"path"===this.nodeName?te(this):void 0}).each(function(){var a=wf.select(this);a.classed(f.EXPANDED)||(a.classed(f.EXPANDED,!0),"circle"===this.nodeName&&a.attr("r",Vh)),cj.select("."+f.eventRect+"-"+b).style("cursor","pointer")})))}).on("click",function(a,b){return ee(xf.data.targets)?void 0:Di?void(Di=!1):void ej.selectAll("."+f.shape+"-"+b).each(function(a){We(this,a,b)})}).call(wf.behavior.drag().origin(Object).on("drag",function(){Xe(wf.mouse(this))}).on("dragstart",function(){Ye(wf.mouse(this))}).on("dragend",function(){Ze()})).call(bj).on("dblclick.zoom",null)}function Ve(a){a.append("rect").attr("x",0).attr("y",0).attr("width",Pf).attr("height",Rf).attr("class",f.eventRect).on("mouseout",function(){ee(xf.data.targets)||(Sd(),Qd(),Je())}).on("mousemove",function(){var a,b,c,d,e=Ic(xf.data.targets);Ci||ee(e)||(a=wf.mouse(this),b=Id(e,a),b&&(c=ie(b)?[b]:Kd(e,b.x),d=c.map(function(a){return pc(a)}),Pd(d,a),Th&&(Je(),Ie(b.index,b.id)),Rd(d),ye(b,a)<100?(cj.select("."+f.eventRect).style("cursor","pointer"),Ei||(Mg(b),Ei=!0)):(cj.select("."+f.eventRect).style("cursor",null),Ng(b),Ei=!1)))}).on("click",function(){var a,b,c=Ic(xf.data.targets);ee(c)||(a=wf.mouse(this),b=Id(c,a),b&&ye(b,a)<100&&ej.select("."+f.circles+"-"+ld(b.id)).select("."+f.circle+"-"+b.index).each(function(){We(this,b,b.index)}))}).call(wf.behavior.drag().origin(Object).on("drag",function(){Xe(wf.mouse(this))}).on("dragstart",function(){Ye(wf.mouse(this))}).on("dragend",function(){Ze()})).call(bj).on("dblclick.zoom",null)}function We(a,b,c){var d,e=wf.select(a),g=e.classed(f.SELECTED),h=!1;"circle"===a.nodeName?(h=se(a,1.5*Vh),d=Ce):"path"===a.nodeName&&(h=te(a),d=Fe),(Ig||h)&&(Hg&&Jg(b)&&(Kg||ej.selectAll("."+f.shapes+(Ig?ld(b.id):"")).selectAll("."+f.shape).each(function(a,b){var c=wf.select(this);c.classed(f.SELECTED)&&d(!1,c.classed(f.SELECTED,!1),a,b)}),e.classed(f.SELECTED,!g),d(!g,e,b,c)),Lg(b,a))}function Xe(a){var b,c,d,e,g,h,i,j;ee(xf.data.targets)||Hg&&(!Ef||bj.altDomain)&&Kg&&(b=Bi[0],c=Bi[1],d=a[0],e=a[1],g=Math.min(b,d),h=Math.max(b,d),i=Ig?Mf.top:Math.min(c,e),j=Ig?Rf:Math.max(c,e),ej.select("."+f.dragarea).attr("x",g).attr("y",i).attr("width",h-g).attr("height",j-i),ej.selectAll("."+f.shapes).selectAll("."+f.shape).filter(function(a){return Jg(a)}).each(function(a,b){var c,d,e,k,l,m,n=wf.select(this),o=n.classed(f.SELECTED),p=n.classed(f.INCLUDED),q=!1;"circle"===this.nodeName?(c=1*n.attr("cx"),d=1*n.attr("cy"),l=Ce,q=c>g&&h>c&&d>i&&j>d):"path"===this.nodeName&&(m=Ld(this),c=m.x,d=m.y,e=m.width,k=m.height,l=Fe,q=!(c>h||g>c+e||d>j||i>d+k)),q^p&&(n.classed(f.INCLUDED,!p),n.classed(f.SELECTED,!o),l(!o,n,a,b))}))}function Ye(a){ee(xf.data.targets)||Hg&&(Bi=a,ej.select("."+f.chart).append("rect").attr("clas
},xf.xgrids.remove=function(a){var b=uf(a);return xf.xgrids(Mh.filter(b))},xf.ygrids=function(a){return a?(Oh=a,$e(),Oh):Oh},xf.ygrids.add=function(a){return a?xf.ygrids(Oh.concat(a)):void 0},xf.ygrids.remove=function(a){var b=uf(a);return xf.ygrids(Oh.filter(b))},xf.regions=function(a){return c(a)?ki:(ki=a,$e(),ki)},xf.regions.add=function(a){return c(a)?ki:(ki=ki.concat(a),$e(),ki)},xf.regions.remove=function(a,c){var e=[].concat(a);return c=d(c)?c:{},e.forEach(function(a){var d=b(c.duration)?c.duration:0;cj.selectAll("."+a).transition().duration(d).style("fill-opacity",0).remove(),ki=ki.filter(function(b){return b.classes.indexOf(a)<0})}),ki},xf.data.get=function(a){var b=xf.data.getAsTarget(a);return d(b)?b.values.map(function(a){return a.value}):void 0},xf.data.getAsTarget=function(a){var b=Fc(function(b){return b.id===a});return b.length>0?b[0]:void 0},xf.data.names=function(a){return arguments.length?(Object.keys(a).forEach(function(b){wg[b]=a[b]}),rf(Cc(xf.data.targets),{withTransition:!0}),wg):wg},xf.x=function(a){return arguments.length&&(qc(xf.data.targets,a),$e({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),xf.data.xs},xf.xs=function(a){return arguments.length&&(rc(xf.data.targets,a),$e({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),xf.data.xs},xf.axis.labels=function(a){arguments.length&&(Object.keys(a).forEach(function(b){bb(b,a[b])}),Db())},xf.axis.max=function(a){arguments.length&&("object"==typeof a?(b(a.y)&&(th=+a.y),b(a.y2)&&(Ch=+a.y2)):th=Ch=+a,$e())},xf.axis.min=function(a){arguments.length&&("object"==typeof a?(b(a.y)&&(uh=+a.y),b(a.y2)&&(Dh=+a.y2)):uh=Dh=+a,$e())},xf.axis.range=function(a){arguments.length&&("undefined"!=typeof a.max&&xf.axis.max(a.max),"undefined"!=typeof a.min&&xf.axis.min(a.min))},xf.legend.show=function(a){Vg||(Vg=!0,gj.style("visibility","visible")),pf(Dc(a)),$e({withLegend:!0})},xf.legend.hide=function(a){qf(Dc(a)),$e({withLegend:!0}),Vg&&ve(a)&&(Vg=!1,gj.style("visibility","hidden"))},xf.resize=function(a){Af=a?a.width:null,Bf=a?a.height:null,df({withLegend:!0,withTransition:!1,withTransitionForTransform:!1})},xf.destroy=function(){xf.data.targets=void 0,xf.data.xs={},ij.html(""),a.onresize=null},"url"in e.data)wf.xhr(e.data.url,function(a,b){var c,d=wf.csv.parseRows(b.response);1===d.length?(c=[{}],d[0].forEach(function(a){c[0][a]=null})):c=wf.csv.parse(b.response),Te(c)});else if("rows"in e.data)Te(tc(e.data.rows));else{if(!("columns"in e.data))throw Error("url or rows or columns is required.");Te(uc(e.data.columns))}return xf},"function"==typeof a.define&&a.define.amd?a.define("c3",["d3"],e):a.c3=e}(window);