我使用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 doesn't work properly in Highchart and Highstock.
这让我可以定义一个我以后可以设置的自定义间隔,但只能在实例化图表之前。如果我想要两个具有不同用户指定间隔的图表,我事先并不知道该怎么办?
是否有适当的解决方案来获得任何自定义间隔并仍然可以获得格式化?
由于
答案 0 :(得分:1)
使用chart.xAxis.update({tickInterval: x});
更新间隔。但是,为什么会发生这种情况的原因可能是minRange
:http://api.highcharts.com/highcharts#xAxis.minRange
答案 1 :(得分:0)
好的,我找到了一个适合我的解决方案。我必须将自定义时间间隔注入默认单位数组(如果它尚未存在)。 诀窍是轴配置允许单位属性,它需要this config之类的东西,但没有记录。
希望这有助于其他人。