无法使用d3.js读取csv文件

时间:2015-09-02 08:57:40

标签: d3.js

我需要用d3.js读取csv文件。我的数据文件是

x,y
480,200
580,400
680,100
780,300
180,300
280,100
380,400

我的代码是

var ball_1 = []
d3.csv("data.csv", function(data) {
    ball_1 = data.map(function(d) { return [ +d["x"], +d["y"] ]; });
    });
console.log(ball_1)

并且控制台日志显示

  

数组[]

但如果我只是在代码中明确地写数据数组,

var ball_1 = [
    [480, 200],
    [580, 400],
    [680, 100],
    [780, 300],
    [180, 300],
    [280, 100],
    [380, 400]
    ];
console.log(ball_1)

然后控制台日志说

  

Array [Array [2],Array [2],Array [2],Array [2],Array [2],Array [2],Array [2]]

因此,第一个读取csv文件的代码不起作用。 怎么了?

1 个答案:

答案 0 :(得分:2)

d3的方法json()csv()tsv()是异步的。这意味着你应该写

var ball = [];

d3.csv('yourfile.csv', function(err, data){
    ball = data.map(function(d) { return [ +d["x"], +d["y"] ]; });

    console.log(ball); //here the code is executed when the csv is retrieved
});

console.log(ball); //here the code is executed after d3.csv() is launched

取决于服务器的速度,您应该看到

Array[]
Array[7]