我对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个元素。
如果你能提出一个可能的解决方案,那就太棒了。
答案 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;
先检查出来然后看看它是怎么回事。
看起来你正在做一些好的问题解决方法。