3

Highchartを使用して、2つのyAxesと1つの日時xAxisに複数のシリーズ(約20)をプロットしています。データは、JSON回答を提供するPHPスクリプトを介して動的にロードされます。ここまでは順調ですね。

私の問題は、Highchartに準拠するために、各シリーズの日時情報をネットワーク経由で送信する必要があることです(確かに、日時情報を1回だけ受け取った後、JSのJSONデータを変更できますが、それも面倒です) 。500データポイント×20シリーズ×タイムスタンプの13バイト=リフレッシュごとに130KBのトラフィック(その1/20で十分な場合)。

私の質問は次のとおりです。「シリーズ」(日時)情報をxAxisに渡してから、発生順にyAxesシリーズをxAxis値に割り当てる可能性はありますか?つまり、私は合格します:

[1361796390000,1361796400000,1361796410000]をxAxisに、[1,2,3]をyAxisに

Highchartは1を1361796390000に、2を1361796400000に割り当てますか?

回答ありがとうございます。

4

1 に答える 1

1

シリーズの各データポイントの日時を実際に渡す必要はありません。シリーズの開始日時を渡すだけで、pointStartを使用して、次のようにカウントを開始するタイミングをグラフに通知できます。

series: [{
    name: 'Wind Speed',
    data: [0.52, 0.778, 0.746, 0.594, 0.716, 0.793, 0.648, 0.828, 0.202, 0.066, 0.116, 0.116, 0.17, 0.195, 0.051, 0, 0.368, 2.365, 2.841, 2.693, 2.416, 2.541, 2.429, 2.888],
    pointStart: 1360893600000,
    pointInterval: 3600000
}]

http://jsfiddle.net/Reality_Extractor/pNFYL/で実際の動作を参照してください。

pointStartはUnix時間を想定していますが、必要な特定の時間を簡単に思い付く方法はたくさんあります。デモンストレーションの目的で、例でハードコーディングしました。

pointStartを使用する場合、データポイントに正確に時間を割り当てるには、pointIntervalが必要です。これは、通常のpointIntervalsを持つデータでのみ機能することに注意してください。不規則なデータがある場合は、各データポイントの日時を指定する必要があります。

これは、時間を配列として渡し、それをxAxisに割り当てることについてのあなたの質問に完全には答えませんが、pointStartアプローチは配列の割り当てよりも複雑ではないと思います。

また、データが実際に変更されていない場合にネットワーク上で不要な更新を防ぐために、データの更新頻度に応じて、サーバーとクライアントにデータをキャッシュする必要があります。

于 2013-02-25T12:07:07.950 に答える