JSFiddle - React, Tailwind, and code Playground
by Black Label
HTML
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/data.js"></script>
<script src="https://code.highcharts.com/modules/drilldown.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
JavaScript
function renderSeparator(xVal, chart, year) {
var xAxis = chart.xAxis[0],
pxVal = xAxis.toPixels(xVal + 0.5);
chart.renderer.path([
'M', pxVal, chart.plotTop,
'L', pxVal, chart.plotTop + chart.plotHeight
]).attr({
stroke: 'black',
'stroke-width': 1
}).add();
chart.renderer.text(
year, pxVal + 10, 70
).css({
color: 'black',
fontSize: 20
}).attr({
zIndex: 6
}).add();
}
// Create the chart
Highcharts.chart('container', {
chart: {
events: {
render: function() {
var chart = this,
xAxis = chart.xAxis[0],
year = 2014;
chart.renderer.text(year, chart.plotLeft + 10, 70)
.css({
color: 'black',
fontSize: 20
})
.attr({
zIndex: 6
})
.add();
year++;
Highcharts.each(xAxis.names, function(el, i) {
if (el === "December") {
renderSeparator(i, chart, year);
year++;
}
});
}
},
type: 'column'
},
title: {
text: 'Car Sales'
},
xAxis: {
type: 'category',
uniqueNames: false
},
yAxis: {
title: {
text: 'Total percent Car Sales'
}
},
legend: {
enabled: false
},
plotOptions: {
series: {
borderWidth: 0,
dataLabels: {
enabled: true,
format: '{point.y:.1f}%'
}
}
},
tooltip: {
headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>'
},
"series": [{
"name": "Car Sales",
"colorByPoint": true,
"data": [{
"name": "July",
"y": 62.74
}, {
"name": "August",
"y": 62.74
}, {
"name": "September",
"y": 62.74
}, {
"name": "October",
"y": 62.74
}, {
"name": "November",
"y": 62.74
}, {
...