我有一个图表,我在x轴上有一个日期时间,在y轴上有一个以秒为单位的值,如10,200或4500.这很好。
我需要的是类似日期时间的行为,当你有一个日期范围时,它会显示该范围之间的天数,但如果范围非常小,则会显示该范围之间的小时数。我的要求是我想做同样的但是在几秒钟内有一个数字,如果范围很大,比如可能在100到2500之间,它应该被转换为分钟,我现在拥有的是:
yAxis: {
title: {
text: 'Minutes',
margin: 10
},
min: 0,
tickInterval: 60,
labels:{
formatter: function(){
var minutes = ""
if (this.value > 59){
minutes = Highcharts.numberFormat((this.value/60), 0)
}
return minutes;
}
}
}
适用于60到500之间的范围,但是当范围较长时,它会绘制很多行来显示分钟。
有什么想法吗?我可以根据某些值更改tickInterval吗?
我已经看过这个回复Plotting seconds, minutes and hours on the yAxis with Highcharts,但我不想在该轴上处理日期时间对象。
答案 0 :(得分:0)
如果可以的话,我真的建议使用内置的日期时间轴类型。对于你所问的问题,它会带来很多麻烦。
如果做不到这一点,你在查看tickInterval时走在正确的轨道上。您可以尝试根本不指定tickInterval,让highcharts为您决定。它通常会找到合情合理的东西。
如果这对您不起作用,那么您必须自己查看数据范围并选择合理的tickInterval。您可以使用的一种算法是:
if (range < 500)
tickInterval = 60
else
tickInterval = 120
显然,如果你的范围变得更大,你可能需要另外一个将tickInterval切换到300或更高的情况。