Creating Half Dougnut Chart with Value at the Center - CanvasJS JavaScript Charts

Creating Half Dougnut Chart with Value at the Center - 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",
{     
  subtitles: [
    {
      dockInsidePlotArea: true,
      verticalAlign: "center",
      horizontalAlign: "center",
      text: "value"
    }
  ],
  data: [
    {
      type: "doughnut",        
      dataPoints: [
        { y: 71 },
        { y: 55},        
      ]
    }
  ]
});

convertToHalfDoughnut(chart);
chart.render();


function convertToHalfDoughnut(chart){
  var sum = 0;
  var dataPoints = chart.options.data[0].dataPoints;

  for(var i = 0; i < dataPoints.length; i++){
    sum += dataPoints[i].y;
  }

  dataPoints.splice(0, 0, {y: sum, color: "transparent", toolTipContent: null});
}