使用"%"进行D3 CSV导入

时间:2014-08-06 00:30:47

标签: javascript html csv d3.js import

我正在尝试导入如下所示的CSV:

月,比率

一月,0.19%

二月,0.19%

三月,0.19%

四月,0.18%

我现在使用的代码是:

    d3.csv("month_ct.csv", function(d) {
    return {
        month: d.Month,
        ratio: +d.Ratio // convert "Length" column to number
    }; }, 
    function(error, rows) {
    console.log(rows);
    });

我的第一个问题是如何实际访问这些数据。当我第一次打开它时,我看到它显示在控制台上,我能够查看其内容,但如果我将代码设置为等于变量,请说"数据集,"我无法访问列表中的元素。

其次,查看返回的项目的比率为NaN,它们应该是数字。

最后,我的代码绘制了根据数据集中的最大值进行缩放的图像。什么是迭代数据集以获得最大比率的适当方法?对于列表列表,我会这样做:

    var max = 0;
    for (group in dataset) {
    if (group[1] > max) {
    max = group[1];
    }
    }

1 个答案:

答案 0 :(得分:1)

NaN是因为Ratio字段上有'%'字符。你可以删除它:

ratio: +d.Ratio.slice(0, -1)

假设所有Ratio字段都有一个尾随'%'字符。

为了遍历行,您可以执行以下操作:

var max = -1;

for (var i = 0; i < rows.length; i++ ) {
    if (rows[i].Ratio > max) {
        max = rows[i].Ratio;
    }
}

编辑:将变量的名称更改为rows以反映应在回调函数中定义的名称。