Highcharts datetime列栏排列不正确

时间:2014-07-17 19:42:12

标签: highcharts

首先,出于某种原因,我似乎无法在每个月的第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);
                }
            }
        }

2 个答案:

答案 0 :(得分:4)

1)没有一个时间间隔会给你每个月的第1和第15个月,因为月份都是不同的长度,1到15的距离和15-> 1的距离不是相同。

为了在这些特定日期打勾,您需要使用tickPositions设置,并提供一个数组,其中包含您想要勾选的每个日期的纪元时间戳(以毫秒为单位)(或Date.UTC对象)。

2)条形图和工具提示正确显示。请记住,在javascript中,月份从0开始 - 所以10是11月,而不是10月。

答案 1 :(得分:0)

感谢jlbriggs,你让我朝着正确的方向前进。

如果有人对此感兴趣,我需要的解决方案。

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}'
                  }


            }