diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 39435aa..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 DashbaordBuilder.net - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index a85ece5..0000000 --- a/README.md +++ /dev/null @@ -1,144 +0,0 @@ -# Combination Chart in PHP -## How to create combination chart in PHP -Creating a combination chart in PHP has never been easier before, especially when we are talking about UI less environment such as Linux, Apache, MySQL and PHP environment. Fortunately, there is a open source liberary available which is built in PHP, HTML, Javascript and Graphic Library. - -A combination chart is combine from different types of charts. For example a combination of line, bar, are etc. To be noted that the series of chart type are rendered in the order they appear in trace array and as a result, they overlap others. Line chart, bar chart, area charts, histogram or scatter chats cannot be combined with any other chart type. - -### Creating a dynamic combination chart in PHP using Dashboard Builder. -

r&&a[f+e]>u;--c,f-=o){var h=f;var p=f+o;for(var d=0;d =1)return+r(t[n-1],n-1,t);var n,a=(n-1)*e,i=Math.floor(a),o=+r(t[i],i,t),s=+r(t[i+1],i+1,t);return o+(s-o)*(a-i)};var L=function(t,r,n){t=m.call(t,f).sort(e);return Math.ceil((n-r)/(2*(C(t,.75)-C(t,.25))*Math.pow(t.length,-1/3)))};var I=function(t,e,r){return Math.ceil((r-e)/(3.5*p(t)*Math.pow(t.length,-1/3)))};var z=function(t,e){var r=t.length,n=-1,a,i;if(e==null){while(++n=o){L=L-o|0;g(c,f,C--,L)}else if(L>=0){g(l,u,E--,L)}else if(L<=-o){L=-L-o|0;for(var I=0;I>>1;i(d,C);var L=0;for(var A=0;Aa){n=a}}var i=e.length;if(n>i/2){n=i/2}for(var o=0;o0){o.push(["index[",u,"]-=s",u].join(""))}o.push(["++index[",l,"]"].join(""))}o.push("}")}return o.join("\n")}function i(t,e,r,n){var i=e.length,o=r.arrayArgs.length,s=r.blockSize,l=r.indexArgs.length>0,u=[];for(var c=0;c0)t=t.slice(0,o);var l=yt.get(t);if(l)t=l,s=bt;function u(){var e=this[i];if(e){this.removeEventListener(t,e,e.$);delete this[i]}}function c(){var e=s(r,a(arguments));u.call(this);this.addEventListener(t,this[i]=e,e.$=n);e._=r}function f(){var r=new RegExp("^__on([^.]+)"+e.requote(t)+"$"),n;for(var a in this){if(n=a.match(r)){var i=this[a];this.removeEventListener(n[1],i,i.$);delete this[a]}}}return o?r?c:u:r?B:f}var yt=e.map({mouseenter:"mouseover",mouseleave:"mouseout"});if(i){yt.forEach(function(t){if("on"+t in i)yt.remove(t)})}function xt(t,r){return function(n){var a=e.event;e.event=n;r[0]=this.__data__;try{t.apply(this,r)}finally{e.event=a}}}function bt(t,e){var r=xt(t,e);return function(t){var e=this,n=t.relatedTarget;if(!n||n!==e&&!(n.compareDocumentPosition(e)&8)){r.call(e,t)}}}var _t,wt=0;function kt(t){var r=".dragsuppress-"+ ++wt,n="click"+r,a=e.select(s(t)).on("touchmove"+r,j).on("dragstart"+r,j).on("selectstart"+r,j);if(_t==null){_t="onselectstart"in t?false:D(t.style,"userSelect")}if(_t){var i=o(t).style,l=i[_t];i[_t]="none"}return function(t){a.on(r,null);if(_t)i[_t]=l;if(t){var e=function(){a.on(n,null)};a.on(n,function(){j();e()},true);setTimeout(e,0)}}}e.mouse=function(t){return At(t,V())};var Mt=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function At(t,r){if(r.changedTouches)r=r.changedTouches[0];var n=t.ownerSVGElement||t;if(n.createSVGPoint){var a=n.createSVGPoint();if(Mt<0){var i=s(t);if(i.scrollX||i.scrollY){n=e.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=n[0][0].getScreenCTM();Mt=!(o.f||o.e);n.remove()}}if(Mt)a.x=r.pageX,a.y=r.pageY;else a.x=r.clientX,a.y=r.clientY;a=a.matrixTransform(t.getScreenCTM().inverse());return[a.x,a.y]}var l=t.getBoundingClientRect();return[r.clientX-l.left-t.clientLeft,r.clientY-l.top-t.clientTop]}e.touch=function(t,e,r){if(arguments.length<3)r=e,e=V().changedTouches;if(e)for(var n=0,a=e.length,i;n0?1:t<0?-1:0}function Rt(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function Bt(t){return t>1?0:t<-1?Ct:Math.acos(t)}function Ft(t){return t>1?zt:t<-1?-zt:Math.asin(t)}function Nt(t){return((t=Math.exp(t))-1/t)/2}function jt(t){return((t=Math.exp(t))+1/t)/2}function Vt(t){return((t=Math.exp(2*t))-1)/(t+1)}function Ut(t){return(t=Math.sin(t/2))*t}var qt=Math.SQRT2,Ht=2,Gt=4;e.interpolateZoom=function(t,e){var r=t[0],n=t[1],a=t[2],i=e[0],o=e[1],s=e[2],l=i-r,u=o-n,c=l*l+u*u,f,h;if(c