d3:数据的时间序列

时间:2013-04-02 21:54:55

标签: d3.js time-series

我想通过在函数中传递字典来创建时间序列。示例中的代码是:

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??
    }

2 个答案:

答案 0 :(得分:0)

d3.csv为您完成了大部分艰苦的工作。它需要一个csv并将其转换为一个对象数组,每个对象都对应一行csv。

https://github.com/mbostock/d3/wiki/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){

}

答案 1 :(得分:0)

要为字典创建一个行路径,请创建一个带有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);