2013-04-02 17 views
18

Ich versuche, einige Daten von einem .csv mit d3.js zu importieren. Ich habe Probleme damit und frage mich, ob jemand eine Hand geben könnte. Meine CSV-Datei wird wie so formatiert:Importieren von Daten von .csv mit d3.js

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 

Ich versuche, die Daten mit dem folgenden Code zu laden:

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

Allerdings bekomme ich nur eine leere [] in der Konsole. Kann jemand auf meinen Fehler hinweisen?

Antwort

20

Ändern Sie es an:

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

Sie benötigen Datenmenge innerhalb der Rückruf zu überprüfen, sobald Ihre Daten zurückgegeben werden.

+0

Danke - Problem ist jetzt bekomme ich einen neuen Fehler. Dies ist, was die Konsole ausdruckt. 'Uncaught Typeerror: Die Methode kann nicht 'Karte' undefinierten example.html nennen: 63 (anonyme Funktion) example.html: 63 (anonyme Funktion) d3.v2.min.js: 1 r d3.v2. min.js: 2 r.onreadystatechange' – araspion

+0

Ich habe meine Antwort bearbeitet, ich hätte darauf achten müssen. Da Sie v2 verwenden, gibt es kein Fehlerargument. –

+0

Danke - Ich denke, ich bin ein bisschen verwirrt über das Scoping hier. Warum muss ich das Dataset innerhalb des Callbacks überprüfen, obwohl ich die Daten einer globalen Variablen zuweise, die ich außerhalb der Funktion d3.csv() definiere? – araspion