2013-04-02 209 views
18

我想使用d3.js從.csv導入一些數據。我在做這件事時遇到了麻煩,並想知道是否有人可以伸出援手。我的.csv文件的格式像這樣:使用d3.js從.csv導入數據

max_i,min_i,max_f,min_f 
-122.1430195,-122.1430195,-122.415278,37.778643 
-122.1430195,-122.1430195,-122.40815,37.785034 
-122.4194155,-122.4194155,-122.4330827,37.7851673 
-122.4194155,-122.4194155,-122.4330827,37.7851673 
-118.4911912,-118.4911912,-118.3672828,33.9164666 
-121.8374777,-121.8374777,-121.8498415,39.7241178 
-115.172816,-115.172816,-115.078011,36.1586877 
-82.5618186,-82.5618186,-79.2274115,37.9308282 
-79.9958864,-79.9958864,-80.260396,40.1787544 
-74.1243063,-74.1243063,-74.040948,40.729688 
-106.609991,-106.609991,-106.015897,35.640949 

我嘗試使用下面的代碼加載數據:

var dataset = [] 
d3.csv("data.csv", function(data) { 
    dataset = data.map(function(d) { return [ +d["max_i"], +d["min_i"] ]; }); 
}); 
console.log(dataset) 

不過,我只是得到一個空的[]在控制檯中。任何人都可以指出我的錯誤嗎?

回答

20

將其更改爲:

var dataset = [] 
d3.csv("data.csv", function(data) { 
    dataset = data.map(function(d) { return [ +d["max_i"], +d["min_i"] ]; }); 
    console.log(dataset) 
}); 

您需要檢查回調內部數據集,一旦返回數據。

+0

謝謝 - 問題是我現在得到一個新的錯誤。這是控制檯正在打印的內容。 '未捕獲的類型錯誤:無法調用方法 '地圖' 未定義example.html的組成:63 (匿名功能)example.html的:63 (匿名功能)d3.v2.min.js:1 řd3.v2。 min.js:2 r.onreadystatechange' – araspion

+0

我編輯了我的回覆,我應該注意。由於您使用的是v2,因此沒有錯誤參數。 –

+0

謝謝 - 我想我對這裏的範圍很困惑。爲什麼我需要檢查回調中的數據集,即使我將數據分配給我在d3.csv()函數之外定義的全局變量? – araspion