Displaying average of dataPoints on indexLabels in Bar Chart - CanvasJS JavaScript Charts
Displaying average of dataPoints on indexLabels in Bar Chart - CanvasJS JavaScript Charts
by canvasjs
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 chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Average of dataPoints"
},
data: [
{
type: "bar",
indexLabel: "{y}",
dataPoints: [
{ label: "Q1", y: 2 },
{ label: "Q2", y: 4 }
]
},
{
type: "bar",
indexLabel: "{y}",
dataPoints: [
{ label: "Q1", y: 3 },
{ label: "Q2", y: 4 }
]
}
]
});
updateLabels();
chart.render();
function updateLabels(){
var sum, labels = [], dps = [];
for(var j = 0; j < chart.options.data[1].dataPoints.length; j++){
noOfDps = 0;
sum = 0;
for(var i = 0; i < chart.options.data.length; i++){
if(chart.options.data[i].dataPoints[j].y){
noOfDps++;
}
sum += chart.options.data[i].dataPoints[j].y;
}
dps.push({ y: sum/noOfDps , label: "Q" + (j+1)})
}
chart.options.data.push({ type: "bar", dataPoints: dps, indexLabel: "Avg: {y}"})
}