CSV 导入未定义数据
CSV import undefined data
我在为 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 时,我确实有 81 个元素注册为 DOM 下的节点。
如果您能暗示一个可能的解决方案,那就太好了。
看来下面代码中的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;
先检查一下,看看进展如何。
看来您在解决问题方面做得不错,请继续努力。
确保您的 csv 格式采用逗号分隔值,而不是逗号 + space。将语言句子中使用的间距分隔标准强加于数据格式是一个常见的错误,因为它们也是句法的。
我在为 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 时,我确实有 81 个元素注册为 DOM 下的节点。
如果您能暗示一个可能的解决方案,那就太好了。
看来下面代码中的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;
先检查一下,看看进展如何。
看来您在解决问题方面做得不错,请继续努力。
确保您的 csv 格式采用逗号分隔值,而不是逗号 + space。将语言句子中使用的间距分隔标准强加于数据格式是一个常见的错误,因为它们也是句法的。