d3.js:如何使用float和string类型导入csv数据

时间:2014-11-19 15:34:28

标签: csv d3.js parsefloat

d3和javascript非常新,但是已经做了大约四个小时试图解决此问题并且还没有找到解决方案。

我想要使用的.csv数据集包含字符串和浮点数(请参阅此处的示例集:http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv),我目前正在导入问题。

d3.csv("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv")
    .row(function (d) {
    return {
        metric: d.metric,
        Var: d.Var,
        param: d.param,
        PC1: +d.PC1, // convert "PC1" column to number
        PC2: +d.PC2, // convert "PC2" column to number
        Type: d.Type
    };
})
    .get(function (error, rows) {
    console.log(rows);
});

我尝试过变体(对于第7行和第8行):

PC1: d.parseFloat("PC1"),
PC1: parseFloat(d.PC1),
PC1: d.parseFloat.PC1,

主要问题是我的浮动字符(PC1和PC2)的形式是1.0e-02而不是0.001,这意味着我不能简单地使用“+”运算符将我的数据转换为浮点数。相反,我必须使用parseFloat函数,我很遗憾不确定如何使用。

当我将结构更改为Importing CSV without headers into D3 - data with both numbers and strings提供的解决方案时,

data = d3.csv.parseRows("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv").map(function(row) {
    return row.map(function(value, index) {
        if(index == 2) {
            return value;
        } else {
            return +value;
        }
    });
});

显然正在读取数据,但未绘制数据,因为PC1和PC2值可能正在以字符串形式读入。我试图整合parseFloat函数,但它仍然不会绘制我的值。

请帮忙!

0 个答案:

没有答案