读CSV / TSV与D3没有标题行(read csv/tsv with no header lin

2019-07-05 06:01发布

我有一个看起来像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);
}

谢谢!

Answer 1:

使用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);
});


Answer 2:

由于博斯托克在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
});


Answer 3:

使用在第一数据读取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
}


Answer 4:

尝试d3.csvParse(文本)

d3.csv.parseRows似乎在现代D3版本不起作用。



文章来源: read csv/tsv with no header line in D3