read csv/tsv with no header line in D3

前端 未结 4 1878
没有蜡笔的小新
没有蜡笔的小新 2020-12-02 23:34

I have CSV data which looks something like:

Data

1,1,10
1,2,50
1,3,5
etc...

And I am trying to read in the data. However, my initial

相关标签:
4条回答
  • 2020-12-02 23:43

    Try d3.csvParse(text)

    d3.csv.parseRows seems doesn't work in modern d3 version.

    0 讨论(0)
  • first read in data using d3.text, then add custom header string, then parse the result with 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
    }
    
    0 讨论(0)
  • 2020-12-02 23:49

    Use d3.text to load the data, and then d3.csvParseRows to parse it. For example:

    d3.text("data/testnh.csv", function(text) {
      console.log(d3.csvParseRows(text));
    });
    

    You'll probably also want to convert your columns to numbers, because they'll be strings by default. Assume they are all numbers, you could say:

    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);
    });
    
    0 讨论(0)
  • 2020-12-02 23:51

    Since Bostock's answer in 2012, d3.csv.parseRows allows for an optional accessor function, which enables his answer to be expressed more concisely:

    d3.text("data/testnh.csv", function(text) {
        var data = d3.csv.parseRows(text, function(d) {
            return d.map(Number);
        });
        // Now do something with data
    });
    
    0 讨论(0)
提交回复
热议问题