it can also depend on the font you are using. with me this happens for arial, but works fine with helvetica or times new roman.


had the same issue and fixed with the autorotation configuration. highcharts will automatically rotate your labels if they don't fit. if there are too many even when rotated highcharts will try remove labels automatically for you.

xaxis = {
    "type": 'datetime',
    "tickinterval": 30 * 24 * 3600 * 1000,
    "labels": {
        autorotation: [45]

just make sure you don't specify step as it will override autorotation.


found my answer here: highcharts overlapping category labels i was using a category array for xaxis labels instead of letting highcharts parse a utc date code.


maybe staggerlines is a solution for you:

xaxis: {
    type: 'datetime',
    labels: {
        staggerlines: 2

i updated your jsfiddle with this setting:

from the api ref:

staggerlines: number (since 2.1)

horizontal axes only. the number of lines to spread the labels over to make room or tighter labels. .

(found via this comment on github)

i updated your jsfiddle with this setting:


another solution is to use tickpixelinterval, which defines the pixel spacing between the ticks. a higher number will result in fewer ticks.


i see two ways of fixing your problem :

  • change the tick interval
  • change the label display

i applied both in the following code (xaxis section) :

$(function () {
 var chart = new highcharts.chart({

    chart: {
        renderto: 'container',
        type: 'column'

    xaxis: {
        type: 'datetime',
        tickinterval : 7*24 * 3600 * 1000,
        labels : { y : 20, rotation: -45, align: 'right' }
    series: [{
        data: [
            [date.utc(2010, 3, 11), 29.9],
            [date.utc(2010, 4, 8), 71.5]

Related Query

More Query from same tag