我正在尝试导入如下所示的 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/