CSV导入未定义的数据

时间:2015-01-17 02:43:19

标签: javascript d3.js

我对d3的.csv导入有问题。我一直在关注

http://www.d3noob.org/2014/02/how-to-import-data-from-csv-file-with.html http://www.d3noob.org/2013/03/d3js-force-directed-graph-example-basic.html

作为csv导入的模板。问题:我似乎无法访问任何我的csv列。当我尝试访问列时,我得到了未定义。具体来说,我试图使用此代码作为构建我的代码的示例。

d3.csv("data/force.csv", function(error, links) {

var nodes = {};

// Compute the distinct nodes from the links.
  links.forEach(function(link) {
      link.source = nodes[link.source] || 
         (nodes[link.source] = {name: link.source});
      link.target = nodes[link.target] || 
         (nodes[link.target] = {name: link.target});
      link.value = +link.value;
});

我的代码看起来很相似:

d3.csv("../assets/datastore/transitions.csv", function(error, data){
if(error) return console.warn(error);

var nodes = {};
data.forEach(function(d){console.log("This is the source " + d.source)});
//Compute distinct nodes from links
data.forEach(function(link){
    console.log("This is the source" + data.source);
    links.source = nodes[links.source] || (nodes[links.source] = {name: links.source});
    links.target = nodes[links.target] || (nodes[links.target] = {name: links.target})
    links.value = + links.value;
});

我甚至简化了我的代码,并试图只访问该数据的最基本元素。

d3.csv("../assets/datastore/transitions.csv", function(error, data){
if(error) return console.warn(error);

var nodes = {};
data.forEach(function(d){console.log("This is the source " + d.source)})

最后,似乎我的数据正在被读取,因为当我使用firebug时,我在DOM下注册了81个元素。

如果你能提出一个可能的解决方案,那就太棒了。

2 个答案:

答案 0 :(得分:3)

确保您的csv已格式化,以便用逗号分隔值,而不是用逗号+空格分隔。将语言句中使用的间距定界标准强加于数据格式是一个常见错误,因为它们也是语法上的。

答案 1 :(得分:0)

以下代码中的links似乎可能是link;

links.source = nodes[links.source] || (nodes[links.source] = {name: links.source});
links.target = nodes[links.target] || (nodes[links.target] = {name: links.target})
links.value = + links.value;

先检查出来然后看看它是怎么回事。

看起来你正在做一些好的问题解决方法。