Я пытаюсь объединить знак «%» на метке круговой диаграммы. Я использовал formatter
для объединения знака '%', но проблема, которую он возвращает, выглядит следующим образом NaN%
, как вы можете видеть на изображении ниже. Я хочу процент каждого среза со знаком «%». Как я могу это сделать? Может ли кто-нибудь помочь мне с моей проблемой?
axios.post(this.urlRoot + this.api + "retrieve_best_medicine.php")
.then(response => {
vm.best_medicines = response.data
var ctxChart = self.$refs.myChart2.getContext('2d');
for(var i = 0; i < this.best_medicines.length; i++) {
sum += parseFloat(this.best_medicines[i].Quantity);
}
if (this.myChart2) this.myChart2.destroy();
this.myChart2 = new Chart(ctxChart, {
type: 'pie',
data: {
labels: vm.best_medicines.map(item => item.MedicineName),
datasets: [{
label: 'Total Items',
data: vm.best_medicines.map(item => (item.Quantity / sum * 100).toFixed(2)),
backgroundColor: this.poolColors(vm.best_medicines.length),
borderColor: '#eee',
borderWidth: 2
}]
},
reponsive : true,
options: {
title : {
display : true,
text : "Most Medicine",
fontFamily: "sans-serif",
fontSize: 18,
},
legend: {
display: false
},
tooltips: {
enabled: true,
mode: "single",
callbacks: {
title: function (tooltipItem, data) { return 'Medicine: ' + data.labels[tooltipItem[0].index]; },
label: function (tooltipItems, data) {
return 'Avg: ' + data.datasets[tooltipItems.datasetIndex].data[tooltipItems.index] + "%";
}
}
},
plugins: {
datalabels: {
formatter: (value, ctx) => {
let sum = 0;
let dataArr = ctx.chart.data.datasets[0].data;
dataArr.map(data => {
sum += data;
});
let percentage = (value*100 / sum).toFixed(2)+"%";
return percentage;
},
color: 'white',
labels: {
title: {
font: {
weight: 'bold',
fontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"
}
},
value: {
color: 'white'
}
}
}
}
}
});
}).catch(e => {
console.log(e)
});