// Set new default font family and font color to mimic Bootstrap's default styling Chart.defaults.global.defaultFontFamily = 'Nunito', '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif'; Chart.defaults.global.defaultFontColor = '#858796'; function number_format(number, decimals, dec_point, thousands_sep) { number = (number + '').replace(',', '').replace(' ', ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function(n, prec) { var k = Math.pow(10, prec); return '' + Math.round(n * k) / k; }; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); if (s[0].length > 3) { s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); } if ((s[1] || '').length < prec) { s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1).join('0'); } return s.join(dec); } // Gráfico de Produção por Dia da Semana var ctx = document.getElementById("myBarChart"); var myBarChart = new Chart(ctx, { type: 'bar', data: { labels: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], // Dias da Semana datasets: [{ label: "Produção", backgroundColor: "#F24405", hoverBackgroundColor: "#A60808", borderColor: "#F27405", data: [570, 6244, 9974, 7933, 9923, 8839, 1693], // Valores de Produção }], }, options: { maintainAspectRatio: false, layout: { padding: { left: 10, right: 25, top: 25, bottom: 0 } }, scales: { xAxes: [{ time: { unit: 'month' }, gridLines: { display: false, drawBorder: false }, ticks: { maxTicksLimit: 6 }, maxBarThickness: 25, }], yAxes: [{ ticks: { min: 0, max: 15000, maxTicksLimit: 5, padding: 10, callback: function(value, index, values) { return '$' + number_format(value); } }, gridLines: { color: "rgb(234, 236, 244)", zeroLineColor: "rgb(234, 236, 244)", drawBorder: false, borderDash: [2], zeroLineBorderDash: [2] } }], }, legend: { display: false }, tooltips: { titleMarginBottom: 10, titleFontColor: '#6e707e', titleFontSize: 14, backgroundColor: "rgb(255,255,255)", bodyFontColor: "#858796", borderColor: '#dddfeb', borderWidth: 1, xPadding: 15, yPadding: 15, displayColors: false, caretPadding: 10, callbacks: { label: function(tooltipItem, chart) { var datasetLabel = chart.datasets[tooltipItem.datasetIndex].label || ''; return datasetLabel + ': ' + number_format(tooltipItem.yLabel) + ' '; } } }, } }); // Plugin apenas para o gráfico de Produção por Dia da Semana Chart.plugins.register({ afterDatasetsDraw: function(chart) { if (chart.config.type === 'bar') { var ctx = chart.ctx; chart.data.datasets.forEach(function(dataset, index) { var meta = chart.getDatasetMeta(index); if (!meta.hidden) { var total = dataset.data.reduce((a, b) => a + b, 0); // Calcula o total para porcentagem meta.data.forEach(function(bar, index) { var data = dataset.data[index]; var percentage = (data / total) * 100; ctx.fillStyle = '#000'; // Cor do texto ctx.textAlign = 'center'; ctx.textBaseline = 'bottom'; ctx.fillText(number_format(percentage, 2) + '%', bar._model.x, bar._model.y - 5); // Ajusta a posição do texto }); } }); } } });