13

ユーザーからの日付範囲に基づいて表示したいチャートがあります。この特定のグラフには、15分ごとのデータポイントがあります。したがって、ユーザーが広い日付範囲を選択した場合、各シリーズに多くのデータポイントが存在する可能性があります。次にいくつかの例を示します。

最初の例では、チャートが表示されます。2番目の例では、チャートは表示されません。多くのデータポイントで機能するHighstockデモ(データグループ化で52,000ポイント)があります。上記のチャートを高値チャートに変更しようとしましたが、それでも同じ結果が得られます。

これを修正するにはどうすればよいですか?

4

2 に答える 2

25

これは、ターボしきい値オプションによるものです。

「系列にこれより長いデータ配列が含まれている場合、数値の1次元配列、またはx値とy値を持つ2次元配列のみが許可されます。また、最初の点のみがテストされ、残りは同じフォーマット。これにより、長いシリーズでの高価なデータチェックとインデックス作成を節約できます。」

デフォルトでは1000ポイントに設定されています。シリーズの各ポイントがオブジェクトであり、その数がしきい値よりも大きいため、グラフはレンダリングされません。

これは、2000に設定されたしきい値で動作するプロットを示すjfFiddleです。

コードの変更されたセクションは次のとおりです。

plotOptions: {
     spline: {
     turboThreshold: 2000,
    ...

別の解決策は、各ポイントをxyプロパティで表すオブジェクトではなく、2次元配列で系列データをエンコードすることです。

于 2012-09-18T00:09:18.230 に答える
0

PHPで応答を生成する場合、turboThreshholdの回避策は次のようになります。

                    if(count($responseObj) > 1000){
                    $modolo = round(count($responseObj) / 1000);
                    for($i = count($responseObj)-1; $i >= 0 ; $i--){
                        if(($i % $modolo) != 0){
                            unset ($responseObj[$i]);
                        }
                    }
                    $responseObj = array_merge($responseObj);
                }
于 2016-03-25T19:12:00.750 に答える