我使用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属性,该属性期望类似于此配置,但没有记录。
希望对大家有所帮助