d3.csv不加载数字矩阵

时间:2014-12-07 22:19:45

标签: javascript csv d3.js

我想使用d3.csv加载外部.csv文件。

这是data.csv(在vim中创建):

x,y
2,2
99,18

这是d3代码:

d3.csv("data.csv", function(dataset){
console.log(d3.max(dataset, function(d){return d["y"];})); 
});

即使我预期' 18'我得到的控制台输出是' 2'。如果我改变了' 18'到另一个号码,例如' 35'输出再次正确。我做错了什么?

1 个答案:

答案 0 :(得分:1)

这些数字将作为字符串加载,这会导致d3.max的意外行为。您需要将值转换为数字。

您可以通过Number(d.y)或(parseIntparseFloat)将其转换为数字。在d3中,您经常会将其缩短为y: +d.y

使用d3.csv,您可以指定一个函数,您可以在解析时执行此转换。 See documentation