具有y轴显示秒和分钟的Highcharts线性图表

时间:2013-03-21 19:53:05

标签: javascript highcharts

我有一个图表,我在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,但我不想在该轴上处理日期时间对象。

1 个答案:

答案 0 :(得分:0)

如果可以的话,我真的建议使用内置的日期时间轴类型。对于你所问的问题,它会带来很多麻烦。

如果做不到这一点,你在查看tickInterval时走在正确的轨道上。您可以尝试根本不指定tickInterval,让highcharts为您决定。它通常会找到合情合理的东西。

如果这对您不起作用,那么您必须自己查看数据范围并选择合理的tickInterval。您可以使用的一种算法是:

if (range < 500)
    tickInterval = 60
else
    tickInterval = 120

显然,如果你的范围变得更大,你可能需要另外一个将tickInterval切换到300或更高的情况。