Question

I have this annoying thing in Highcharts that I cannot figure out. I have graphs that are dynamically generated and can contain multiple columns and splines. In the example the spline is a temperature measurement and contains lots of data points. The two columns are grouped by day and therefore contain only one value per day.

When I use this combination the column width becomes almost invisible: http://jsfiddle.net/FXRj2/

       series: [{
            name: 'Rainfall 1',
            color: '#4572A7',
            type: 'column',
            yAxis: 1,
            data: [[1374105600000,1461.77],[1374192000000,1473.67],[1374278400000,1122.47],
                   [1374364800000,1170.16],[1374451200000,1436.88],[1374537600000,1383.57], 
                   [1374624000000,9.73]],
            tooltip: {
                valueSuffix: ' mm'
            }

        }, {
            name: 'Rainfall 2',
            color: '#red',
            type: 'column',
            yAxis: 2,
            data: [[1374105600000,3.28],[1374192000000,2.95],[1374278400000,3.12],
                   [1374364800000,3.8],[1374451200000,3.61],[1374537600000,0.39]],
            tooltip: {
                valueSuffix: ' mm'
            }

        }, {
            name: 'Temperature',
            color: '#89A54E',
            type: 'spline',
            data: [[1374105600000,21.9],[1374109200000,21.6],[1374112800000,21.2],
                   [1374116400000,20.8],[1374120000000,20.5],[1374123600000,20],
                   [1374127200000,19.7],[1374130800000,19.6],[1374134400000,19.9],
                   [1374138000000,20.3],[1374141600000,20.9],[1374145200000,21.4],
                   [1374148800000,21.9],[1374152400000,22.5],[1374156000000,23.1],
                   [1374159600000,23.5],[1374163200000,23.9],[1374166800000,23.7],
                   [1374170400000,23.8],[1374174000000,23.3],[1374177600000,23.1],
                   [1374181200000,22.4],[1374184800000,21.9],[1374188400000,21.4],
                   [1374192000000,21],[1374195600000,20.4],[1374199200000,20.1],
                   [1374202800000,19.7],[1374206400000,19.3],[1374210000000,19],
                   [1374213600000,18.7],[1374217200000,18.9],[1374220800000,19.3],
                   [1374224400000,19.8],[1374228000000,20.6],[1374231600000,21.4],
                   [1374235200000,22.1],[1374238800000,22.6],[1374242400000,23.2],
                   [1374246000000,23.5],[1374249600000,23.5],[1374253200000,23.5],
                   [1374256800000,23.1],[1374260400000,23],[1374264000000,22.4],
                   [1374267600000,22],[1374271200000,21.4],[1374274800000,21.2],
                   [1374278400000,20.6],[1374282000000,20.2],[1374285600000,20.3],
                   [1374289200000,20.2],[1374292800000,20],[1374296400000,19.7],
                   [1374300000000,19.3],[1374303600000,19],[1374307200000,18.9],
                   [1374310800000,19],[1374314400000,19.2],[1374318000000,19],
                   [1374321600000,19.7],[1374325200000,19.8],[1374328800000,20.2],
                   [1374332400000,20.6],[1374336000000,21],[1374339600000,21.6],
                   [1374343200000,21.8],[1374346800000,22.1],[1374350400000,22.3],
                   [1374354000000,22.1],[1374357600000,21.5],[1374361200000,21.1],
                   [1374364800000,20.6],[1374368400000,20.1],[1374372000000,19.7],
                   [1374375600000,19.4],[1374379200000,19],[1374382800000,18.6],
                   [1374386400000,18.2],[1374390000000,18.2],[1374393600000,18.6],
                   [1374397200000,19.4],[1374400800000,20.4],[1374404400000,21.6],
                   [1374408000000,22.9],[1374411600000,24.2],[1374415200000,25.4],
                   [1374418800000,26.5],[1374422400000,27.2],[1374426000000,27.8],
                   [1374429600000,28.3],[1374433200000,28.5],[1374436800000,28.4],
                   [1374440400000,27.8],[1374444000000,27.1],[1374447600000,26.2],
                   [1374451200000,25.7],[1374454800000,25],[1374458400000,24.3],
                   [1374462000000,23.8],[1374465600000,23.1],[1374469200000,22.5],
                   [1374472800000,22.1],[1374476400000,22.2],[1374480000000,22.5],
                   [1374483600000,23.1],[1374487200000,23.9],[1374490800000,24.9],
                   [1374494400000,26.1],[1374498000000,27],[1374501600000,27.8],
                   [1374505200000,28.4],[1374508800000,28.9],[1374512400000,29.1],
                   [1374516000000,29.2],[1374519600000,29],[1374523200000,28.7],
                   [1374526800000,28.5],[1374530400000,27.7],[1374534000000,27.3],
                   [1374537600000,26.8],[1374541200000,26.5],[1374544800000,25.9],
                   [1374548400000,25.4],[1374552000000,24.8],[1374555600000,24.1],
                   [1374559200000,23.6],[1374562800000,23.5],[1374566400000,23.8],
                   [1374570000000,24.3],[1374573600000,24.9],[1374577200000,25.5],
                   [1374580800000,25.7],[1374584400000,26.3],[1374588000000,27.3],
                   [1374591600000,28.1],[1374595200000,28.5],[1374598800000,28.9],
                   [1374602400000,29],[1374606000000,29.4],[1374609600000,29.1],
                   [1374613200000,28.9],[1374616800000,28.2],[1374620400000,27.6],
                   [1374624000000,26.9],[1374627600000,26.2],[1374631200000,25.6],
                   [1374634800000,25.1],[1374638400000,24.6],[1374642000000,24.3],
                   [1374645600000,23.7],[1374649200000,23.6],[1374652800000,23.5],
                   [1374656400000,23.9],[1374660000000,24.4],[1374663600000,24.4],
                   [1374667200000,24.3],[1374670800000,24.9],[1374674400000,25.9],
                   [1374678000000,26.3]],
            tooltip: {
                valueSuffix: '°C'
            }
        }]

When I remove the data for the temperature the columns 're-take' their normal width behaviour: http://jsfiddle.net/K9DxS/

        series: [{
            name: 'Rainfall 1',
            color: '#4572A7',
            type: 'column',
            yAxis: 1,
            data: [[1374105600000,1461.77],[1374192000000,1473.67],[1374278400000,1122.47],
                   [1374364800000,1170.16],[1374451200000,1436.88],[1374537600000,1383.57],
                   [1374624000000,9.73]],
            tooltip: {
                valueSuffix: ' mm'
            }

        }, {
            name: 'Rainfall 2',
            color: '#red',
            type: 'column',
            yAxis: 2,
            data: [[1374105600000,3.28],[1374192000000,2.95],[1374278400000,3.12],
                   [1374364800000,3.8],[1374451200000,3.61],[1374537600000,0.39]],
            tooltip: {
                valueSuffix: ' mm'
            }

        }, {
            name: 'Temperature',
            color: '#89A54E',
            type: 'spline',
            data: [],
            tooltip: {
                valueSuffix: '°C'
            }
        }]

I have been searching for ways to dynamically control the width of columns by using pointWidth but this gets me into a hole new area of issues, as I am not always sure if there is a combination of columns and splines and what the date range is.

Is there a trick to solve this? I hope I have missed something simple.

PS: post got a little bit long, but StackOverflow insisted I inserted code with my jsfiddle links...

Was it helpful?

Solution

I can't stand these kind of things... It had been bugging me for weeks and today I decided to post to stackoverflow. To further help my case I was reading through the API description of Highcharts when I noticed an option to have multiple x axis. Since my problem seemed to be related to scaling on the x axis I decided to give it a go...

I created a new x axis for the line data and it works like a charm. Of course we do not want to see multiple x axis, so a little fiddling with the settings hides it again.

My x axis definiation now looks like this:

xAxis: [{
   type: 'datetime',
},{
   type: 'datetime',
   lineWidth: 0,
   minorGridLineWidth: 0,
   lineColor: 'transparent',
   opposite: true,
   labels: {
       enabled: false
   },
   minorTickLength: 0,
   tickLength: 0
}],

On the data series that has 'too much' points I simply added 'xAxis: 1'.

Fiddle here : http://jsfiddle.net/AM4vx/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top