0

次のD3 時系列グラフの例(元のソース) を見ています。これはd3.tsv()、さまざまな系列をグラフに追加するために使用します。

私のデータが次の形式であると仮定します。

var data1 = [{"date": "2011-07-16", "data1": 413.0}, {"date": "2011-07-17", "data1": 412.0}, ...]
var data2 = [{"date": "2011-07-16", "data2": 200.0}, {"date": "2011-07-17", "data2": 201.0}, ...]
var data3 = [{"date": "2011-07-16", "data3": 199.0}, {"date": "2011-07-17", "data3": 195.0}, ...]

この例をどのように変更して、自分のデータを処理できますか?

4

1 に答える 1

1

簡単な解決策の 1 つは、3 つのデータ配列を、d3.tsv によって返されるオブジェクトと同じ形式の 1 つの配列にマージすることです。たとえば、例で d3.tsv(...) を呼び出す代わりに、最初に 3 つのデータ配列をマージします。

// Create a merged list of data points
var data = [];
var i;
for (i = 0; i < data1.length; i++){
  data.push({date: data1[i].date, data1: data1[i].data1,
             data2: data2[i].data2, data3:    data3[i].data3, });
}

dataその後、スクリプトの残りの部分でまったく同じ方法で使用できます。あなたのデータポイントはすでに日付でソートされており(あなたの例のように)、すべての日付に3つのデータポイントがあると仮定していることに注意してください。

于 2013-10-02T13:47:05.327 に答える