ユーザーからの日付範囲に基づいて表示したいグラフがあります。この特定のグラフには、15分ごとのデータポイントがあります。したがって、ユーザーが広い日付範囲を選択した場合、各シリーズに多くのデータポイントが存在する可能性があります。次にいくつかの例を示します。
最初の例では、チャートは表示されます。 2番目の例では、チャートは表示されません。多くのデータポイントで機能するHighstockデモ( データグループ化で52,000ポイント )があります。上記のチャートを高値チャートに変更しようとしましたが、それでも同じ結果が得られます。
これを修正するにはどうすればよいですか?
これは ターボしきい値 オプションによるものです:
「シリーズにこれより長いデータ配列が含まれている場合、数値の1次元配列、またはx値とy値を持つ2次元配列のみが許可されます。また、最初の点のみがテストされ、残りは同じフォーマット。これにより、長いシリーズでの高価なデータチェックとインデックス作成を節約できます。」
デフォルトでは1000ポイントに設定されています。シリーズの各ポイントがオブジェクトであり、その数がしきい値よりも大きいため、グラフはレンダリングされません。
これは jfFiddle で、しきい値を2000に設定してプロットが機能することを示しています。
コードの変更されたセクションは次のとおりです。
plotOptions: {
spline: {
turboThreshold: 2000,
...
別の解決策は、各ポイントをx-yプロパティで表したオブジェクトにする代わりに、シリーズデータを2次元配列でエンコードすることです。
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);
}