Javascript 如何创建一个D3图,其中多个时间序列已经存在于变量中(即不使用D3.tsv())?

Javascript 如何创建一个D3图,其中多个时间序列已经存在于变量中(即不使用D3.tsv())?,javascript,d3.js,time-series,Javascript,D3.js,Time Series,我正在看下面的(),它使用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 dat

我正在看下面的(),它使用
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}, ...]

如何修改此示例以处理我的数据?

一个简单的解决方案是将三个数据数组合并为一个数组,该数组的格式与d3.tsv返回的对象的格式相同。例如,在本例中,不要调用d3.tsv(…),而是首先合并三个数据数组,例如

// 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, });
}
//创建数据点的合并列表
var数据=[];
var i;
对于(i=0;i

然后,您可以在脚本的其余部分中以完全相同的方式使用
数据。请注意,我假设您的数据点已经按日期排序(如您的示例中所示),并且每个日期都有三个数据点。

所有这些都在创建
城市的函数中。在这里,添加来自不同数组的不同数据位。