我正在使用d3.js
呈现一些数据,而数据集是一个名为csv
的{{1}}文件,如下所示:
bar-data.csv
但是,当我使用以下代码获取date,value,duration
www.sina.com,53,100
www.baidu.com,165,2000
www.qq.com,269,690
www.youku.com,421,224
www.facebook.com,405,345
www.apple.com,376,777
www.cnn.com,359,298
www.cctv.com,433,333
www.google.com,455,500
www.boston.com,670,274
持续时间时,返回值为maximum
而非777
(应该是数据集中的最大值)。
2000
如果您将d3.csv("bar-data.csv", function(error, data) {
data.forEach(function(d) {
d.date = d.date;
d.value = d.value;
});
var maximum = d3.min(data, function(d) { return d.duration; });
alert ("max is " + maximum);
更改为2000
,则会将999
作为最大值。它似乎只用相同数量的数字给出答案。
这里的问题是什么?
答案 0 :(得分:17)
更改代码以将持续时间值解析为Int可以解决问题,并使用d3.forEach函数处理它们。见下文:
d3.csv("test.csv", function(error, data) {
console.log(data);
data.forEach(function(d) {
d.date = d.date;
d.value = d.value;
d.duration = parseInt(d.duration);
});
var maximum = d3.max(data, function(d) { return d.duration; });
console.log("max is " + maximum);
});
感谢您提出的问题,我打赌以前很多人都有这个问题!
再见,亚历克斯