1

对 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 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 函数,但它仍然不会绘制我的值。

请帮忙!

4

0 回答 0