108
rated 0 times
[
114]
[
6]
/ answers: 1 / hits: 136097
/ 6 Years ago, mon, august 27, 2018, 12:00:00
I have a piechart with four labels:
var data = [{
data: [50, 55, 60, 33],
labels: [India, China, US, Canada],
backgroundColor: [
#4b77a9,
#5f255f,
#d21243,
#B27200
],
borderColor: #fff
}];
Using chartjs-plugin-datalabels
plugin I wanted to show percentage value in each Pie piece with below code:
formatter: (value, ctx) => {
let datasets = ctx.chart.data.datasets;
if (datasets.indexOf(ctx.dataset) === datasets.length - 1) {
let sum = 0;
datasets.map(dataset => {
sum += dataset.data[ctx.dataIndex];
});
let percentage = Math.round((value / sum) * 100) + '%';
return percentage;
} else {
return percentage;
}
},
color: '#fff',
}
I am getting 100% value for all the pie pieces, instead of respective percentages.
Here is the JSFiddle (https://jsfiddle.net/kingBethal/a1Lvn4eb/7/)
More From » charts