27

次のような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);
}

ありがとう!

4

4 に答える 4

54

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);
});
于 2012-12-13T23:26:35.263 に答える
11

2012年のBostockの回答以来、d3.csv.parseRowsではオプションのアクセサー関数を使用できます。これにより、Bostockの回答をより簡潔に表現できます。

d3.text("data/testnh.csv", function(text) {
    var data = d3.csv.parseRows(text, function(d) {
        return d.map(Number);
    });
    // Now do something with data
});
于 2016-01-09T21:54:50.343 に答える
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
}
于 2016-05-09T20:53:28.290 に答える
1

d3.csvParse(text)を試してください

d3.csv.parseRowsは、最新のd3バージョンでは機能しないようです。

于 2017-12-08T08:54:18.717 に答える