2013-04-02 69 views
1

我想通過在函數中傳遞字典來創建時間序列。從例子中的代碼是這樣的:d3:來自數據的時間序列

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

回答

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){ 

} 
+0

我也不是很清楚我的意思,見下文。謝謝。 – RParadox

0

要創建給予了字典做一個清單有字典,如直線路徑:

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);