1) You can use the rotation:
xAxis: { labels: { rotation: -90, align: 'right' } }
2) If the rotation does not help, you can calculate the step (if xaxis is categorized). This code will calculate the step of loading, adding a series and increasing.
chart: { zoomType: 'x', events: { addSeries: function() { var c = this; setTimeout(function(){c.xAxis[0].setExtremes(c.xAxis[0].dataMin, c.xAxis[0].dataMax)}, 10); }, load: function() { var c = this; setTimeout(function(){c.xAxis[0].setExtremes(c.xAxis[0].dataMin, c.xAxis[0].dataMax)}, 10); } } }, xAxis: { events: { setExtremes: function (event) { if (Math.abs(this.options.labels.rotation) == 90) { var labelWidth = parseInt(this.options.labels.style.lineHeight) + 2; var plotAreaWidth = parseInt(this.chart.plotBox.width); var labelsCount = Math.floor(plotAreaWidth / labelWidth); if (event.max !== null && event.max !== undefined) { var pointsCount = Math.round(event.max - event.min); } else { var pointsCount = Math.round(this.dataMax - this.dataMin); } var step = Math.ceil(pointsCount / (labelsCount * (this.tickInterval == null ? 1 : this.tickInterval))); this.update({'labels': {'step': step}}, true); } } } }
source share