diff --git a/d3.chart.js b/d3.chart.js index c49149789b861..d8fd040208c58 100644 --- a/d3.chart.js +++ b/d3.chart.js @@ -230,8 +230,7 @@ function d3_chart_boxQuartiles(d) { var len = d.length; return [.25, .5, .75].map(function(q) { q *= len; - if (parseInt(q) === q) return (d[q] + q[q + 1]) / 2; - return d[Math.round(q)]; + return ~~q === q ? (d[q] + d[q + 1]) / 2 : d[Math.round(q)]; }); } // ranges (bad, satisfactory, good) diff --git a/d3.chart.min.js b/d3.chart.min.js index 1528c12a2bf91..1bf5d38828c68 100644 --- a/d3.chart.min.js +++ b/d3.chart.min.js @@ -1 +1 @@ -(function(){function g(a){var b=a(0);return function(c){return Math.abs(a(c)-b)}}function f(a){return function(b){return"translate("+a(b)+",0)"}}function e(a){return a.measures}function d(a){return a.markers}function c(a){return a.ranges}function b(a){var b=a.length;return[.25,.5,.75].map(function(c){c*=b;if(parseInt(c)===c)return(a[c]+c[c+1])/2;return a[Math.round(c)]})}function a(a){return[0,a.length-1]}d3.chart={},d3.chart.box=function(){function k(a){a.each(function(a,b){a=a.map(g).sort(d3.ascending);var k=a.length,l=a[0],m=a[k-1],n=h.call(this,a,b),o=n.map(function(b){return a[b]}),p=n[0],q=n[n.length-1],r=q-p,s=i(a.slice(p,q)),t=a.slice(0,p).concat(a.slice(q+1,k)),u=d3.select(this),v=d3.scale.linear().domain(f?f.call(this,a,b):[l,m]).range([d,0]),w=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(v.range());this.__chart__=v;var x=u.selectAll("line.center").data([[o[0],o[o.length-1]]]);x.enter().append("svg:line").attr("class","center").attr("x1",c/2).attr("y1",function(a){return w(a[0])}).attr("x2",c/2).attr("y2",function(a){return w(a[1])}).transition().duration(e).attr("y1",function(a){return v(a[0])}).attr("y2",function(a){return v(a[1])}),x.transition().duration(e).attr("y1",function(a){return v(a[0])}).attr("y2",function(a){return v(a[1])}),x.exit().remove();var y=u.selectAll("rect.box").data([[s[0],s[2]]]);y.enter().append("svg:rect").attr("class","box").attr("x",0).attr("y",function(a){return w(a[1])}).attr("width",c).attr("height",function(a){return w(a[0])-w(a[1])}).transition().duration(e).attr("y",function(a){return v(a[1])}).attr("height",function(a){return v(a[0])-v(a[1])}),y.transition().duration(e).attr("y",function(a){return v(a[1])}).attr("height",function(a){return v(a[0])-v(a[1])}),y.exit().remove();var z=u.selectAll("line.median").data([s[1]]);z.enter().append("svg:line").attr("class","median").attr("x1",0).attr("y1",w).attr("x2",c).attr("y2",w).transition().duration(e).attr("y1",v).attr("y2",v),z.transition().duration(e).attr("y1",v).attr("y2",v),z.exit().remove();var A=u.selectAll("line.whisker").data(o);A.enter().append("svg:line").attr("class","whisker").attr("x1",0).attr("y1",w).attr("x2",c).attr("y2",w).transition().duration(e).attr("y1",v).attr("y2",v),A.transition().duration(e).attr("y1",v).attr("y2",v),A.exit().remove();var B=u.selectAll("circle.outlier").data(t);B.enter().append("svg:circle").attr("class","outlier").attr("r",5).attr("cx",c/2).attr("cy",w).transition().duration(e).attr("cy",v),B.transition().duration(e).attr("cy",v),B.exit().remove();var C=j||v.tickFormat(8),D=u.selectAll("text").data(s.concat(o));D.enter().append("svg:text").attr("dy",".3em").attr("dx",function(a,b){return b&1?8:-8}).attr("x",function(a,b){return b&1?c:0}).attr("y",w).attr("text-anchor",function(a,b){return b&1?"start":"end"}).text(C).transition().duration(e).attr("y",v),D.text(C).transition().duration(e).attr("y",v)})}var c=1,d=1,e=0,f=null,g=Number,h=a,i=b,j=null;k.width=function(a){if(!arguments.length)return c;c=a;return k},k.height=function(a){if(!arguments.length)return d;d=a;return k},k.tickFormat=function(a){if(!arguments.length)return j;j=a;return k},k.duration=function(a){if(!arguments.length)return e;e=a;return k},k.domain=function(a){if(!arguments.length)return f;f=d3.functor(a);return k},k.value=function(a){if(!arguments.length)return g;g=a;return k},k.whiskers=function(a){if(!arguments.length)return h;h=a;return k},k.quartiles=function(a){if(!arguments.length)return i;i=a;return k};return k},d3.chart.bullet=function(){function o(a){a.each(function(a,c){var d=i.call(this,a,c).slice().sort(d3.descending),e=j.call(this,a,c).slice().sort(d3.descending),o=k.call(this,a,c).slice().sort(d3.descending),p=d3.select(this),q=d3.scale.linear().domain([0,Math.max(d[0],e[0],o[0])]).range(b?[l,0]:[0,l]),r=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(q.range());this.__chart__=q;var s=g(r),t=g(q),u=p.selectAll("rect.range").data(d);u.enter().append("svg:rect").attr("class",function(a,b){return"range s"+b}).attr("width",s).attr("height",m).attr("x",b?r:0).transition().duration(h).attr("width",t).attr("x",b?q:0),u.transition().duration(h).attr("x",b?q:0).attr("width",t).attr("height",m);var v=p.selectAll("rect.measure").data(o);v.enter().append("svg:rect").attr("class",function(a,b){return"measure s"+b}).attr("width",s).attr("height",m/3).attr("x",b?r:0).attr("y",m/3).transition().duration(h).attr("width",t).attr("x",b?q:0),v.transition().duration(h).attr("width",t).attr("height",m/3).attr("x",b?q:0).attr("y",m/3);var w=p.selectAll("line.marker").data(e);w.enter().append("svg:line").attr("class","marker").attr("x1",r).attr("x2",r).attr("y1",m/6).attr("y2",m*5/6).transition().duration(h).attr("x1",q).attr("x2",q),w.transition().duration(h).attr("x1",q).attr("x2",q).attr("y1",m/6).attr("y2",m*5/6);var x=n||q.tickFormat(8),y=p.selectAll("g.tick").data(q.ticks(8),function(a){return this.textContent||x(a)}),z=y.enter().append("svg:g").attr("class","tick").attr("transform",f(r)).attr("opacity",1e-6);z.append("svg:line").attr("y1",m).attr("y2",m*7/6),z.append("svg:text").attr("text-anchor","middle").attr("dy","1em").attr("y",m*7/6).text(x),z.transition().duration(h).attr("transform",f(q)).attr("opacity",1);var A=y.transition().duration(h).attr("transform",f(q)).attr("opacity",1);A.select("line").attr("y1",m).attr("y2",m*7/6),A.select("text").attr("y",m*7/6),y.exit().transition().duration(h).attr("transform",f(q)).attr("opacity",1e-6).remove()})}var a="left",b=!1,h=0,i=c,j=d,k=e,l=380,m=30,n=null;o.orient=function(c){if(!arguments.length)return a;a=c,b=a=="right"||a=="bottom";return o},o.ranges=function(a){if(!arguments.length)return i;i=a;return o},o.markers=function(a){if(!arguments.length)return j;j=a;return o},o.measures=function(a){if(!arguments.length)return k;k=a;return o},o.width=function(a){if(!arguments.length)return l;l=a;return o},o.height=function(a){if(!arguments.length)return m;m=a;return o},o.tickFormat=function(a){if(!arguments.length)return n;n=a;return o},o.duration=function(a){if(!arguments.length)return h;h=a;return o};return o}})() \ No newline at end of file +(function(){function g(a){var b=a(0);return function(c){return Math.abs(a(c)-b)}}function f(a){return function(b){return"translate("+a(b)+",0)"}}function e(a){return a.measures}function d(a){return a.markers}function c(a){return a.ranges}function b(a){var b=a.length;return[.25,.5,.75].map(function(c){c*=b;return~~c===c?(a[c]+a[c+1])/2:a[Math.round(c)]})}function a(a){return[0,a.length-1]}d3.chart={},d3.chart.box=function(){function k(a){a.each(function(a,b){a=a.map(g).sort(d3.ascending);var k=a.length,l=a[0],m=a[k-1],n=h.call(this,a,b),o=n.map(function(b){return a[b]}),p=n[0],q=n[n.length-1],r=q-p,s=i(a.slice(p,q)),t=a.slice(0,p).concat(a.slice(q+1,k)),u=d3.select(this),v=d3.scale.linear().domain(f?f.call(this,a,b):[l,m]).range([d,0]),w=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(v.range());this.__chart__=v;var x=u.selectAll("line.center").data([[o[0],o[o.length-1]]]);x.enter().append("svg:line").attr("class","center").attr("x1",c/2).attr("y1",function(a){return w(a[0])}).attr("x2",c/2).attr("y2",function(a){return w(a[1])}).transition().duration(e).attr("y1",function(a){return v(a[0])}).attr("y2",function(a){return v(a[1])}),x.transition().duration(e).attr("y1",function(a){return v(a[0])}).attr("y2",function(a){return v(a[1])}),x.exit().remove();var y=u.selectAll("rect.box").data([[s[0],s[2]]]);y.enter().append("svg:rect").attr("class","box").attr("x",0).attr("y",function(a){return w(a[1])}).attr("width",c).attr("height",function(a){return w(a[0])-w(a[1])}).transition().duration(e).attr("y",function(a){return v(a[1])}).attr("height",function(a){return v(a[0])-v(a[1])}),y.transition().duration(e).attr("y",function(a){return v(a[1])}).attr("height",function(a){return v(a[0])-v(a[1])}),y.exit().remove();var z=u.selectAll("line.median").data([s[1]]);z.enter().append("svg:line").attr("class","median").attr("x1",0).attr("y1",w).attr("x2",c).attr("y2",w).transition().duration(e).attr("y1",v).attr("y2",v),z.transition().duration(e).attr("y1",v).attr("y2",v),z.exit().remove();var A=u.selectAll("line.whisker").data(o);A.enter().append("svg:line").attr("class","whisker").attr("x1",0).attr("y1",w).attr("x2",c).attr("y2",w).transition().duration(e).attr("y1",v).attr("y2",v),A.transition().duration(e).attr("y1",v).attr("y2",v),A.exit().remove();var B=u.selectAll("circle.outlier").data(t);B.enter().append("svg:circle").attr("class","outlier").attr("r",5).attr("cx",c/2).attr("cy",w).transition().duration(e).attr("cy",v),B.transition().duration(e).attr("cy",v),B.exit().remove();var C=j||v.tickFormat(8),D=u.selectAll("text").data(s.concat(o));D.enter().append("svg:text").attr("dy",".3em").attr("dx",function(a,b){return b&1?8:-8}).attr("x",function(a,b){return b&1?c:0}).attr("y",w).attr("text-anchor",function(a,b){return b&1?"start":"end"}).text(C).transition().duration(e).attr("y",v),D.text(C).transition().duration(e).attr("y",v)})}var c=1,d=1,e=0,f=null,g=Number,h=a,i=b,j=null;k.width=function(a){if(!arguments.length)return c;c=a;return k},k.height=function(a){if(!arguments.length)return d;d=a;return k},k.tickFormat=function(a){if(!arguments.length)return j;j=a;return k},k.duration=function(a){if(!arguments.length)return e;e=a;return k},k.domain=function(a){if(!arguments.length)return f;f=d3.functor(a);return k},k.value=function(a){if(!arguments.length)return g;g=a;return k},k.whiskers=function(a){if(!arguments.length)return h;h=a;return k},k.quartiles=function(a){if(!arguments.length)return i;i=a;return k};return k},d3.chart.bullet=function(){function o(a){a.each(function(a,c){var d=i.call(this,a,c).slice().sort(d3.descending),e=j.call(this,a,c).slice().sort(d3.descending),o=k.call(this,a,c).slice().sort(d3.descending),p=d3.select(this),q=d3.scale.linear().domain([0,Math.max(d[0],e[0],o[0])]).range(b?[l,0]:[0,l]),r=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(q.range());this.__chart__=q;var s=g(r),t=g(q),u=p.selectAll("rect.range").data(d);u.enter().append("svg:rect").attr("class",function(a,b){return"range s"+b}).attr("width",s).attr("height",m).attr("x",b?r:0).transition().duration(h).attr("width",t).attr("x",b?q:0),u.transition().duration(h).attr("x",b?q:0).attr("width",t).attr("height",m);var v=p.selectAll("rect.measure").data(o);v.enter().append("svg:rect").attr("class",function(a,b){return"measure s"+b}).attr("width",s).attr("height",m/3).attr("x",b?r:0).attr("y",m/3).transition().duration(h).attr("width",t).attr("x",b?q:0),v.transition().duration(h).attr("width",t).attr("height",m/3).attr("x",b?q:0).attr("y",m/3);var w=p.selectAll("line.marker").data(e);w.enter().append("svg:line").attr("class","marker").attr("x1",r).attr("x2",r).attr("y1",m/6).attr("y2",m*5/6).transition().duration(h).attr("x1",q).attr("x2",q),w.transition().duration(h).attr("x1",q).attr("x2",q).attr("y1",m/6).attr("y2",m*5/6);var x=n||q.tickFormat(8),y=p.selectAll("g.tick").data(q.ticks(8),function(a){return this.textContent||x(a)}),z=y.enter().append("svg:g").attr("class","tick").attr("transform",f(r)).attr("opacity",1e-6);z.append("svg:line").attr("y1",m).attr("y2",m*7/6),z.append("svg:text").attr("text-anchor","middle").attr("dy","1em").attr("y",m*7/6).text(x),z.transition().duration(h).attr("transform",f(q)).attr("opacity",1);var A=y.transition().duration(h).attr("transform",f(q)).attr("opacity",1);A.select("line").attr("y1",m).attr("y2",m*7/6),A.select("text").attr("y",m*7/6),y.exit().transition().duration(h).attr("transform",f(q)).attr("opacity",1e-6).remove()})}var a="left",b=!1,h=0,i=c,j=d,k=e,l=380,m=30,n=null;o.orient=function(c){if(!arguments.length)return a;a=c,b=a=="right"||a=="bottom";return o},o.ranges=function(a){if(!arguments.length)return i;i=a;return o},o.markers=function(a){if(!arguments.length)return j;j=a;return o},o.measures=function(a){if(!arguments.length)return k;k=a;return o},o.width=function(a){if(!arguments.length)return l;l=a;return o},o.height=function(a){if(!arguments.length)return m;m=a;return o},o.tickFormat=function(a){if(!arguments.length)return n;n=a;return o},o.duration=function(a){if(!arguments.length)return h;h=a;return o};return o}})() \ No newline at end of file diff --git a/src/chart/box.js b/src/chart/box.js index ca6f2c6875265..76a9ff7b13d05 100644 --- a/src/chart/box.js +++ b/src/chart/box.js @@ -229,7 +229,6 @@ function d3_chart_boxQuartiles(d) { var len = d.length; return [.25, .5, .75].map(function(q) { q *= len; - if (parseInt(q) === q) return (d[q] + q[q + 1]) / 2; - return d[Math.round(q)]; + return ~~q === q ? (d[q] + d[q + 1]) / 2 : d[Math.round(q)]; }); }