D3.js d3:来自数据的时间序列
我想通过在函数中传递字典来创建timeseries。示例中的代码如下所示:D3.js d3:来自数据的时间序列,d3.js,time-series,D3.js,Time Series,我想通过在函数中传递字典来创建timeseries。示例中的代码如下所示: d3.csv("data.csv", function(error, data) { data.forEach(function(d) { d.date = parseDate(d.date); d.close = +d.close; }); x.domain(d3.extent(data, function(d) { return d.date; })); y.domain(d3.ex
d3.csv("data.csv", function(error, data) {
data.forEach(function(d) {
d.date = parseDate(d.date);
d.close = +d.close;
});
x.domain(d3.extent(data, function(d) { return d.date; }));
y.domain(d3.extent(data, function(d) { return d.close; }));
//etc...
我要做的是把它转换成一个函数,这个函数接受一个带有日期的对象并关闭行(数据),然后从中生成图表,即
function makeGraph(timeseriesdata){
// create chart above from data
// what format??
}
d3.csv为您完成了大部分艰苦工作。它获取一个csv并将其转换为一个对象数组,每个对象对应于一行csv 有一些例子 调用d3.csv并使用parseDate清理数据后,可以将数据传递给makeGraph
d3.csv("data.csv", function(error, data) {
data.forEach(function(d) {
d.date = parseDate(d.date);
d.close = +d.close;
});
makeGraph(data);
});
function makeGraph(timeseriesdata){
}
要创建给定字典的行路径,请使用dict创建列表,例如:
var parseDate = d3.time.format("%Y-%m-%d").parse;
var lineData = [ { "date": "2013-04-01", "close": 5}, { "date": "2013-03-28", "close": 20},
{ "date": "2013-03-27", "close": 10}, { "date": "2013-03-26", "close": 40},
{ "date": "2013-03-25", "close": 5}, { "date": "2013-03-24", "close": 60}];
lineData.forEach(function(d,i) {
d.date = parseDate(d.date);
d.close = +d.close;
});
makeGraph(lineData);