0

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を変更できますか?

私はすでにこの返信を見て、yAxisでHighchartsを使用して秒、分、時間をプロットしていますが、その軸で日時オブジェクトを処理したくありません。

4

1 に答える 1

0

可能であれば、組み込みの日時軸タイプを使用することを強くお勧めします。それはあなたが尋ねている問題のようなもので多くの面倒を取り除きます。

それができない場合は、tickIntervalを確認するのに正しい方向に進んでいます。tickIntervalをまったく指定せずに、highchartsに決定させることができます。それは通常、賢明な何かを見つけるでしょう。

それがうまくいかない場合は、データ範囲を調べて、適切なtickIntervalを自分で選択する必要があります。使用できるアルゴリズムの1つは次のとおりです。

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

明らかに、範囲がさらに大きくなる可能性がある場合は、tickIntervalを300以上に切り替える別のケースが必要になる場合があります。

于 2013-03-22T09:05:23.173 に答える