1

javascript と d3.js (バージョン 3.3.3) を学び始めています。どちらcsvでもない形式のファイルからデータを読み取る必要がありますtsv。おそらくd3.dsv.parseRowsを使用できますが、私はそれに固執しています-開始するための助けを本当に感謝します.例は素晴らしいでしょう.

データ形式は ASCII で、不明な数の空白文字 (タブまたはスペース) で区切られた 2 列の数字です。コメント文字は#.

# Example 
# The data is obviously poorly aligned
# The two values in each row are separated 
# by one or more tabs and/or spaces
#
1.0   10.00
  2.0    20
3.0     30.          # this data line should be read
#  4.0    40.0       # this data line should be ignored
5.0   50.00

数値の配列の配列にデータが必要なので、素敵な d3 プロットを続けることができます。

[ [1.0,10.0], [2.0,20.0], [3.0,30.0], [5.0,50.0] ]
4

2 に答える 2

0

あなた自身のリクエストを書かなければならないようですね。

var dsvFile = new XMLHttpRequest();
    dsvFile.open("GET", "dsv.txt", true);

var req = new XMLHttpRequest();
    req.onreadystatechange = function () {
      if (req.readyState == 4) {
        if (req.status === 200 || 
            req.status === 0) {

            var data = req.responseText;
            cleanData(data)
          }
        }
      };

    req.open('GET', "dsv.txt", true);
    req.send(null);

    var cleanData = function(data) {

      var clean = [];
      var lines = data.split("\n");

      for (var i = 0; i < lines.length; i++) {
        var comment = /^#/
        var whiteSpace = /^\s+/
        var OK = comment.exec(lines[i]) // check for comment lines
        var white = whiteSpace.exec(lines[i]) // check white whitespace at begining of line
        if(!OK) // if no comments then
          { 
            if(white) // if whitespace at begining of line remove 
            {
              var str = lines[i].replace(whiteSpace, '')
            } 
            else 
            {
              var str = lines[i]
            }
          clean.push(str)
          }
      };

      console.log(clean)

    };
于 2013-09-16T15:37:51.533 に答える