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 max = 0;
var chart = new CanvasJS.Chart("chartContainer", {
data: [
{
type: "bar",
dataPoints: [
{ x: 10, y: 71, indexLabelToDisplay: "high" },
{ x: 20, y: 55, indexLabelToDisplay: "medium" },
{ x: 30, y: 50, indexLabelToDisplay: "low" }
]
}
]
});
addLabels();
function addLabels(){
for( var i = 0; i<chart.options.data.length; i++ )
for( var j = 0; j<chart.options.data[i].dataPoints.length; j++ )
if( max < chart.options.data[i].dataPoints[j].y)
max = chart.options.data[i].dataPoints[j].y;
var dataSeriesLength = chart.options.data.length;
for( var i = 0; i<dataSeriesLength; i++ ){
chart.options.data.push({type: "error",
whiskerThickness: 0,
linkedDataSeriesIndex: i,
dataPoints: []});
}
for( var i = 0; i<dataSeriesLength; i++ )
for( var j = 0; j<chart.options.data[i].dataPoints.length; j++ )
chart.options.data[i + dataSeriesLength].dataPoints.push({x: chart.options.data[i].dataPoints[j].x, y: [max/2,max/2], indexLabelToDisplay: chart.options.data[i].dataPoints[j].indexLabelToDisplay,indexLabelFormatter: function ( e ) {
if(e.index === 0)
return e.dataPoint.indexLabelToDisplay;
else
return " ";
} });
}
chart.render();