Highstock 不支持自定义(3 天)带格式的刻度间隔



我使用HighStock来显示时间序列数据,我希望允许用户在x轴上预定义标签间隔。如果我试着把它设置为3天,它会迅速变成2天,或者如果我把它设置为5天,它会迅速变成7天。

xAxis: {
    // This should equal to 3 days.
    tickInterval: 3*24*3600*1000,
    ordinal: false
},

见:http://jsfiddle.net/DH664/1/

我知道这是默认行为,所以我尝试提供我自己的tickPositioner函数。它实际上有效,但令我惊讶的是,标签的日期格式消失了。

xAxis: {
    tickPositioner: function (min, max) {
        var res = [],
            i = (((min + interval -1) / interval) >> 0) * interval;
        for (; i <= max; i+= interval) {
            res.push(i);
        }
        return res;
    },
    ordinal: false
},

见:http://jsfiddle.net/DH664/2/

我发现了这个解决方案:tickInterval在Highchart和Hilitock中不能正常工作。

这让我可以定义一个自定义间隔,我可以稍后设置,但只能在实例化图表之前。如果我想要两个具有不同用户指定间隔的图表,而我事先不知道该怎么办?

是否有一个适当的解决方案,有任何自定义间隔,仍然得到格式?

谢谢

使用chart.xAxis.update({tickInterval: x});更新interval。但原因,为什么会这样,可能是minRange: http://api.highcharts.com/highcharts#xAxis.minRange

好的,我找到了一个适合我的解决方案。我必须将自定义的时间间隔注入到默认的单位数组中,如果它还没有存在的话。技巧在于axis配置允许units属性,该属性期望类似于此配置,但没有记录。

希望对大家有所帮助

最新更新