我有 CSV 数据,看起来像:
数据
1,1,10
1,2,50
1,3,5
etc...
我正在尝试读取数据。但是,我的初始数据不包含标题行(如上所示),因此它将第一个数据行作为标题 (1,1,10)。有没有办法解决。我想在读取数据后设置标题名称
Javascript
d3.csv("data/testnh.csv", function(data) {
console.log(data);
}
谢谢!
我有 CSV 数据,看起来像:
1,1,10
1,2,50
1,3,5
etc...
我正在尝试读取数据。但是,我的初始数据不包含标题行(如上所示),因此它将第一个数据行作为标题 (1,1,10)。有没有办法解决。我想在读取数据后设置标题名称
d3.csv("data/testnh.csv", function(data) {
console.log(data);
}
谢谢!
使用d3.text加载数据,然后使用d3.csvParseRows 对其进行解析。例如:
d3.text("data/testnh.csv", function(text) {
console.log(d3.csvParseRows(text));
});
您可能还希望将列转换为数字,因为默认情况下它们是字符串。假设它们都是数字,您可以说:
d3.text("data/testnh.csv", function(text) {
var data = d3.csvParseRows(text).map(function(row) {
return row.map(function(value) {
return +value;
});
});
console.log(data);
});
由于 Bostock 在 2012 年的回答,d3.csv.parseRows允许一个可选的访问器函数,这使得他的回答能够更简洁地表达:
d3.text("data/testnh.csv", function(text) {
var data = d3.csv.parseRows(text, function(d) {
return d.map(Number);
});
// Now do something with data
});
首先使用 读取数据d3.text
,然后添加自定义标头字符串,然后使用解析结果d3.csv.parse
d3.text("data/testnh.csv", function(r){
var result = "x, y, z\n" + r; //now you have the header
var data = d3.csv.parse(result);
//do your plotting with data
}
试试d3.csvParse(text)
d3.csv.parseRows 似乎在现代 d3 版本中不起作用。