{"id":828,"date":"2022-04-23T00:06:15","date_gmt":"2022-04-22T15:06:15","guid":{"rendered":"http:\/\/www.onepage.co.kr\/wordpress\/?p=828"},"modified":"2022-04-23T00:06:15","modified_gmt":"2022-04-22T15:06:15","slug":"statcked-chart-chart-js","status":"publish","type":"post","link":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/2022\/04\/23\/statcked-chart-chart-js\/","title":{"rendered":"statcked chart chart.js"},"content":{"rendered":"<div>\n<div>&lt;!DOCTYPE html&gt;<\/div>\n<div>&lt;html lang=&#8221;en&#8221;&gt;<\/div>\n<div>&lt;head&gt;<\/div>\n<div>&lt;metacharset=&#8221;UTF-8&#8243;&gt;<\/div>\n<div>&lt;metahttp-equiv=&#8221;X-UA-Compatible&#8221;content=&#8221;IE=edge&#8221;&gt;<\/div>\n<div>&lt;metaname=&#8221;viewport&#8221;content=&#8221;width=device-width, initial-scale=1.0&#8243;&gt;<\/div>\n<div>&lt;title&gt;Document&lt;\/title&gt;<\/div>\n<div>&lt;scriptsrc=&#8221;https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/2.5.0\/Chart.min.js&#8221;&gt;&lt;\/script&gt;<\/div>\n<div><\/div>\n<div>&lt;\/head&gt;<\/div>\n<div>&lt;body&gt;<\/div>\n<div>&lt;canvasid=&#8221;bar-chart&#8221;width=&#8221;600&#8243;height=&#8221;350&#8243;&gt;&lt;\/canvas&gt;<\/div>\n<div>&lt;\/body&gt;<\/div>\n<div>&lt;\/html&gt;<\/div>\n<div>&lt;script&gt;<\/div>\n<div>varnumberWithCommas = function(x) {<\/div>\n<div>returnx.toString().replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, &#8220;,&#8221;);<\/div>\n<div>};<\/div>\n<div>var dataPack1 = [50000, 0, 0,0, 0, 0, 0, 0, 0, 0, 60100, 62000];<\/div>\n<div>var dataPack2 = [0, 6000, 13000, 14000, 50060, 20030, 20070, 35000, 41000, 4020, 40030, 70050];<\/div>\n<div>var dates = [&#8220;January&#8221;, &#8220;February&#8221;, &#8220;March&#8221;, &#8220;April&#8221;, &#8220;May&#8221;, &#8220;June&#8221;, &#8220;July&#8221;, &#8220;August&#8221;, &#8220;September&#8221;, &#8220;October&#8221;, &#8220;November&#8221;, &#8220;December&#8221;];<\/div>\n<div>\/\/ Chart.defaults.global.elements.rectangle.backgroundColor = &#8216;#FF0000&#8217;;<\/div>\n<div>var bar_ctx = document.getElementById(&#8216;bar-chart&#8217;);<\/div>\n<div>var bar_chart = new Chart(bar_ctx, {<\/div>\n<div>type:&#8217;bar&#8217;,<\/div>\n<div>data: {<\/div>\n<div>labels:dates,<\/div>\n<div>datasets: [<\/div>\n<div>{<\/div>\n<div>label:&#8217;SoftEnterprises, Sales&#8217;,<\/div>\n<div>data:dataPack1,<\/div>\n<div>backgroundColor:&#8221;rgba(55, 160, 225, 0.7)&#8221;,<\/div>\n<div>hoverBackgroundColor:&#8221;rgba(55, 160, 225, 0.7)&#8221;,<\/div>\n<div>hoverBorderWidth:2,<\/div>\n<div>hoverBorderColor:&#8217;lightgrey&#8217;<\/div>\n<div>},<\/div>\n<div>{<\/div>\n<div>label:&#8217;SmartSystems, Sales&#8217;,<\/div>\n<div>data:dataPack2,<\/div>\n<div>backgroundColor:&#8221;rgba(225, 58, 55, 0.7)&#8221;,<\/div>\n<div>hoverBackgroundColor:&#8221;rgba(225, 58, 55, 0.7)&#8221;,<\/div>\n<div>hoverBorderWidth:2,<\/div>\n<div>hoverBorderColor:&#8217;lightgrey&#8217;<\/div>\n<div>},<\/div>\n<div>]<\/div>\n<div>},<\/div>\n<div>options: {<\/div>\n<div>animation: {<\/div>\n<div>duration:10,<\/div>\n<div>onComplete:function(){<\/div>\n<div>vararr = [800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800]<\/div>\n<div>varmodel_y, gap<\/div>\n<div>varchartInstance = this.chart,<\/div>\n<div>ctx = chartInstance.ctx;<\/div>\n<div>ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);<\/div>\n<div>ctx.textAlign = &#8216;center&#8217;;<\/div>\n<div>ctx.textBaseline = &#8216;bottom&#8217;;<\/div>\n<div>ctx.fillStyle = &#8216;#000&#8217;;<\/div>\n<div>this.data.datasets.forEach(function(dataset, i) {<\/div>\n<div>varisHidden = dataset._meta[0].hidden; \/\/&#8217;hidden&#8217; property of dataset<\/div>\n<div><\/div>\n<div>if (!isHidden) { \/\/if dataset is not hidden<\/div>\n<div><\/div>\n<div>varmeta = chartInstance.controller.getDatasetMeta(i);<\/div>\n<div>\/\/console.log(&#8216;meta&#8217;, meta)<\/div>\n<div>meta.data.forEach(function(bar, index) {<\/div>\n<div>vardata = dataset.data[index];<\/div>\n<div>diff = arr[index] &#8211; bar._model.y<\/div>\n<div>arr[index] = bar._model.y<\/div>\n<div>gap = diff \/ 2<\/div>\n<div>model_y = bar._model.y + gap<\/div>\n<div><\/div>\n<div>console.log(&#8216;i, index, model.y&#8217;, i, index, bar._model.y, arr[index])<\/div>\n<div>ctx.fillText(data, bar._model.x, model_y);<\/div>\n<div>}<\/div>\n<div>);<\/div>\n<div>}<\/div>\n<div><\/div>\n<div>});<\/div>\n<div><\/div>\n<div>}<\/div>\n<div>},<\/div>\n<div>tooltips: {<\/div>\n<div>mode:&#8217;label&#8217;,<\/div>\n<div>callbacks: {<\/div>\n<div>label:function(tooltipItem, data) {<\/div>\n<div>returndata.datasets[tooltipItem.datasetIndex].label + &#8220;: &#8221; + numberWithCommas(tooltipItem.yLabel);<\/div>\n<div>}<\/div>\n<div>}<\/div>\n<div>},<\/div>\n<div>scales: {<\/div>\n<div>xAxes: [{<\/div>\n<div>stacked:true,<\/div>\n<div>gridLines: { display:false },<\/div>\n<div>}],<\/div>\n<div>yAxes: [{<\/div>\n<div>stacked:true,<\/div>\n<div>ticks: {<\/div>\n<div>callback:function(value) { returnnumberWithCommas(value);<\/div>\n<div>},<\/div>\n<div>},<\/div>\n<div>}],<\/div>\n<div>}, \/\/ scales<\/div>\n<div>legend: {display:true}<\/div>\n<div>} \/\/ options<\/div>\n<div>},<\/div>\n<div><\/div>\n<div>);<\/div>\n<div>&lt;\/script&gt;<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&lt;!DOCTYPE html&gt; &lt;html lang=&#8221;en&#8221;&gt; &lt;head&gt; &lt;metacharset=&#8221;UTF-8&#8243;&gt; &lt;metahttp-equiv=&#8221;X-UA-Compatible&#8221;content=&#8221;IE=edge&#8221;&gt; &lt;metaname=&#8221;viewport&#8221;content=&#8221;width=device-width, initial-scale=1.0&#8243;&gt; &lt;title&gt;Document&lt;\/title&gt; &lt;scriptsrc=&#8221;https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/2.5.0\/Chart.min.js&#8221;&gt;&lt;\/script&gt; &lt;\/head&gt; &lt;body&gt; &lt;canvasid=&#8221;bar-chart&#8221;width=&#8221;600&#8243;height=&#8221;350&#8243;&gt;&lt;\/canvas&gt; &lt;\/body&gt; &lt;\/html&gt; &lt;script&gt; varnumberWithCommas = function(x) { returnx.toString().replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, &#8220;,&#8221;); }; var dataPack1 = [50000, 0, 0,0, 0, 0, 0, 0, 0, 0, 60100, 62000]; var dataPack2 = [0, 6000, 13000, 14000, 50060, 20030, 20070, 35000, 41000, 4020, 40030, 70050]; var dates [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-828","post","type-post","status-publish","format-standard","hentry","category-javascript-jquery"],"_links":{"self":[{"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=828"}],"version-history":[{"count":1,"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/828\/revisions"}],"predecessor-version":[{"id":829,"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/828\/revisions\/829"}],"wp:attachment":[{"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.onepage.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}