JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>
JavaScript
var dataPoints = [
{
"name": "Andrew",
"count": "12"
},
{
"name": "Jeff",
"count": "9"
},
{
"name": "Sam",
"count": "7"
},
{
"name": "Lobb",
"count": "17"
},
{
"name": "Thomas",
"count": "15"
},
{
"name": "Greg",
"count": "13"
},
{
"name": "Tom",
"count": "6"
},
{
"name": "Zack",
"count": "8"
},
{
"name": "Micky",
"count": "11"
},
{
"name": "Ronn",
"count": "5"
},
{
"name": "Nick",
"count": "4"
},
{
"name": "Jeff",
"count": "9"
},
{
"name": "Alfred",
"count": "12"
},
{
"name": "Sui",
"count": "14"
},
{
"name": "Fran",
"count": "9"
}
];
var newDps = [], otherSum = 0;
var chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Student Marks"
},
data: [{
type: "pie",
indexLabel: "{label}, {y}",
dataPoints: newDps
}]
});
addData();
function addData() {
for (var i = 0; i < dataPoints.length; i++) {
if(dataPoints[i].count < 10){
otherSum+= Number(dataPoints[i].count);
} else {
newDps.push({
label: dataPoints[i].name,
y: dataPoints[i].count
});
}
}
newDps.push({label: "Others", y: otherSum})
chart.render();
}