首先,由于某些原因,我似乎无法在每个月的1日和15日将yAxis设置为tickInterval。
第二,没有一个数据是正确的。如果你看一下系列数据和图表上的条形图就会发现有一些月度填充。连工具提示都有错误的日期。
裁判:http://jsfiddle.net/no1uknow/5hnBP/12/
yAxis: {
title: '',
type: 'datetime',
min: Date.UTC(2014, 9, 1),
max: Date.UTC(2014, 12, 31),
tickInterval: 1000 * 60 * 60 * 24 * 14, // two weeks
//ticks: ['2014-10-01','2014-10-15','2014-11-01','2014-11-15','2014-12-01','2014-12-15','2015-01-01'],
labels: {
formatter: function() {
return Highcharts.dateFormat('%d-%b-%Y', this.value);
}
}
}
1)每个月的1号和15号没有一个间隔,因为每个月的长度都不一样,从1到>15和从15到>1的距离也不一样。
为了在这些特定的日期上有刻度,您需要使用tickPositions设置,并提供一个数组,其中包含您想要刻度(或date)的每个日期的epoch时间戳(以毫秒为单位)。UTC对象)。
- tickPositions reference: http://api.highcharts.com/highcharts#xAxis.tickPositions
- 纪元时间参考:http://www.epochconverter.com/
2)栏和工具提示显示正确。请记住,在javascript中,月份从0开始-所以10是11月,而不是10月。
谢谢你给我指明了方向。
如果有人感兴趣,这是我需要的解决方案。
http://jsfiddle.net/5hnBP/15/ yAxis: {
title: '',
type: 'datetime',
min: 1409544000000, // Date.UTC(2014, 9, 1),
max: 1418619600000, // Date.UTC(2014, 1, 31),
tickPositions:
[1409544000000,1410753600000,1412136000000,1413345600000,1414814400000,1416027600000,1417410000000,1418619600000,1420088400000],
labels: {
format: '{value:%d-%b-%Y}'
}
}