javascript - D3 CSV 导入 "%"

标签 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];
    }
    }

最佳答案

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,以反射(reflect)应在回调函数中定义的名称。

关于javascript - D3 CSV 导入 "%",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25150500/

相关文章:

python - 如何从 CSV 中删除重复的行?

c++ - 在 C++ 中格式化 CSV 文件

javascript - 获取相同的数据到两个选择元素

javascript - 字符串的点相乘

javascript - 无法使用 Safari 上的存储访问 API 在 iframe 中设置 cookie

html - 将图像 float 到 DIV 之外

javascript - EmberJS 2.0 如何避免路线上的动态段始终未定义?

html - Sublime : disable pink highlighting on boolean operators inside AngularJS directives

html - 使用媒体查询将 Flexbox 网格从 4x1 转换为 2x2

javascript - 删除一行 csv 或忽略它