将.data文件导入D3js?

时间:2015-04-09 19:12:59

标签: javascript d3.js data-visualization

因此,我被赋予了导入一些数据以进行可视化的任务。具体来说:

http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data

但是,我还没有关于如何导入.data文件的线索。此外,没有标题行来实际组织文件。

我尝试导入为文本并使用csv.parseRows()导致长度为1的数组只包含一个长字符串:

我尝试导入为d3.tsv()。每种技术最终都会将一行作为一个长字符串导入,如下所示。

    "18.0   8   307.0      130.0      3504.      12.0   70  1   "chevrolet chevelle malibu""

我从来没有处理.data文件和使用D3的资源很少。任何有关处理此问题的帮助将一如既往地受到高度赞赏。你的人很棒。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式来解析字符串:

/("[^"]+"|[^\s]+)\s*/g

使用此正则表达式,转动

18.0   8   307.0      130.0      3504.      12.0   70  1    "chevrolet chevelle malibu"

[
  "18.0",
  "8",
  "307.0",
  "130.0",
  "3504.",
  "12.0",
  "70",
  "1",
  "\"chevrolet chevelle malibu\""
]

您可以通过按每个换行符拆分数据文件的内容,然后将每一行映射到正则表达式来为每一行执行此操作:

d3.text("http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data", function(data) {
    var lines = data.split('\n');
    var results = data.map(function (d) {
      var match = d.match(regex);
      return match.slice(1).map(function (d) { return d.trim(); });
    });
});

这是一个快速的小提示,显示这应用于一行:http://jsfiddle.net/tftdepL4/1/