将 .data 文件导入 D3js?

Importing a .data file into D3js?

所以我接到了导入一些数据以进行可视化的任务。具体来说:

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

但是,我不知道如何导入 .data 文件。此外,没有 header 行来实际组织文件。

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

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

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

我从未处理过 .data 文件,关于将它们与 D3 一起使用的资源很少。一如既往,我们将不胜感激处理此问题的任何帮助。你们真棒。

谢谢。

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

/("[^"]+"|[^\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(); });
    });
});

这里是一个快速 fiddle 显示这一点应用于一行:http://jsfiddle.net/tftdepL4/1/