I have problem with Highcharts, I\'ve set right Y-axis to min:0 and max:100 (it\'s %) but it won\'t work and make 125 percentage. What\'s wrong?
http://jsfiddle.net/SdTc
The problem you're having is that highcharts is trying to align the ticks. There are two ways of handling this problem with the current data set:
max: 100
changes to
max: 75
or, you need to set alignTicks as false
chart: {
type: 'area',
alignTicks: false
}
I figure it out. Better way to fix this issue is use tickinterval.
Here is sample http://jsfiddle.net/SdTcU/1/
$(function () {
$('#container').highcharts({
chart: {
type: 'area'
},
title: {
text: ''
},
colors: ['#c42525','#8bbc21'],
xAxis: {
categories: [
'07:00:00','07:15:00','07:30:00','07:45:00','08:00:00','08:15:00','08:30:00','08:45:00','09:00:00','09:15:00','09:30:00','09:45:00','10:00:00','10:15:00','10:30:00','10:45:00','11:00:00','11:15:00','11:30:00','11:45:00','12:00:00','12:15:00','12:30:00','12:45:00','13:00:00','13:15:00','13:30:00','13:45:00','14:00:00','14:15:00','14:30:00','14:45:00','15:00:00','15:15:00','15:30:00','15:45:00','16:00:00','16:15:00','16:30:00','16:45:00','17:00:00','17:15:00','17:30:00','17:45:00','18:00:00','18:15:00','18:30:00','18:45:00','19:00:00','19:15:00','19:30:00','19:45:00','20:00:00','20:15:00','20:30:00','20:45:00','21:00:00','21:15:00','21:30:00','21:45:00','22:00:00','22:15:00','22:30:00','22:45:00','23:00:00','23:15:00'
],
labels: {
step: 4,
rotation: -45,
align: 'right',
style: {
fontSize: '10px',
fontFamily: 'Verdana, sans-serif'
}
}
},
yAxis: [{ // Primary yAxis
gridLineWidth: 1,
tickInterval:10750, //get max value from highest area and divide it by 4
labels: {
format: '{value}',
style: {
color: '#89A54E'
}
},
title: {
text: '1',
style: {
color: '#89A54E'
}
}
}, { // Secondary yAxis
tickInterval:20, //set ticks to 20
min: 0,
max: 100,
title: {
text: '%',
style: {
color: '#4572A7'
}
},
labels: {
format: '{value}%',
style: {
color: '#4572A7'
}
},
opposite: true
}],
credits: {
enabled: false
},
tooltip: {
pointFormat: '{series.name} produced <b>{point.y:,.0f}</b><br/>warheads in {point.x}'
},
plotOptions: {
area: {
marker: {
enabled: false,
symbol: 'circle',
radius: 2,
states: {
hover: {
enabled: true
}
}
}
}
},
series: [{
name: '1',
data: [
null, null, 43000, 41000, 39000, 37000,
35000, 33000, 31000, 29000, 27000, 25000,
35000, 33000, 31000, 29000, 27000, 25000,
24000, 23000, 22000, 21000, 20000,
null, null, 43000, 41000, 39000, 37000,
24000, 23000, 22000, 21000, 20000,
24000, 23000, 22000, 21000, 20000
]
}, {
name: '2',
data: [
1, null, null, null, null, 1005, 1436, 2063, 3057, 4618,27387, 29459, 31056, 31982, 32040, 26956, 27912, 28999, 28965, 27826,
100, 1005, 1436, 2063, 3057, 4618,27387, 29459, 31056, 31982, 32040, 26956, 27912, 28999, 28965, 27826,
1000, 1005, 1436, 2063, 3057, 4618,27387, 29459, 31056, 31982, 32040, 26956, 27912, 28999, 28965, 27826
]
},
{
name: '%',
color: '#4572A7',
type: 'spline',
yAxis: 1,
data: [80,70,78,86,64,51,58,88,88,100,100,95,68,91,92,93,94,85,100]
}
]
});
});
You may also use a combination of the solutions above (worked for me):
alignTicks: false (chart)
max:100 (on % axis)
gridLineWidth: 0 (on second Y axis)