1

ノード(マシン)の可用性をプロットしようとしています。収集したデータのストレージを節約するために、一定の間隔でデータを記録するのではなく、イベント(ADDED、REMOVED)に基づいて記録します。ADDEDは「上」を意味し、REMOVEDは「下/到達不能」を意味します

これが私が持っているサンプルデータです:

2012-11-25 11:11:11.1234 - node added.
2012-11-25 15:01:20.1234 - node removed.
2012-11-25 18:12:12.1234 - node added.

たとえば、2012-11-24から2012-11-25(x軸)、上/下(y軸)の時間範囲からグラフをプロットしたいのですが、グラフをプロットするにはどうすればよいですか?

4

2 に答える 2

0

すべてのデータを配列に格納している場合は、JavaScriptの組み込みArray.filterメソッドを使用し、JavaScriptのDateオブジェクトを使用してタイムスタンプをミリ秒に変換します(1000分の1秒単位で四捨五入されます。小数点以下3桁のみです)。

var startTime = Date.parse("2012-11-24"),
    endTime = Date.parse("2012-11-25") + 86400000; /* Add one day */

filteredData = data.filter(function(d) {
    var time = Date.parse(d.time);
    return (time >= startTime && time < endTime);
});

日付範囲をいじる必要があるかもしれません。2012-11-24から2012-11-25までのデータが必要だと思います。


データがデータベースにある場合、別の方法は、データベースにクエリを実行して、時間範囲内に存在するデータのみを表示することです(d3.textJSONを出力し、startTimeとendTimeの2つのGETパラメーターを受け入れるPHPスクリプトを使用して呼び出すことができます) )。

d3.text("getNodes.php?startTime=" + startTime + "&endTime=" + endTime, function(json) {
    filteredData = JSON.parse(json);
});
于 2012-11-26T02:58:38.003 に答える
0

d3ツール(http://d3js.org)にはいくつかの例があります(どれか覚えていません)

例に目を通すと、使用するビジュアライゼーションのタイプを選択できます。あなたが持っているデータセットは、あなたがやろうとしていることと一致すると思います(アップ/ダウンコメントを整数に変換するには、小さな演算子を書く必要があるかもしれません)。

于 2012-11-25T23:03:20.060 に答える