我对d3完全不熟悉。我已经完成了Scott Murray的“互动数据可视化网络”中的一些图表和示例,并且几乎没有问题。这是我第一次尝试使用未包含在我的代码中的大型数据集。
d3.csv(“historical_weather.csv”,函数(错误,数据){
dataset = data.map(function(d){
return [ parseInt(+d.cloudCover),parseInt(+ d.maxTemp) ];
})
console.log(dataset);
var svg = d3.select("body")
.append("svg")
.attr("height",500)
.attr("width",500);
d3.select("svg")
.selectAll("rect")
.data("dataset")
.enter()
.append("rect")
.attr("height",50)
.attr("width", function(d){return d.maxTemp*10;});
});
数据加载并在控制台中作为数组显示,我可以在挖掘数组时看到预期的值。然而,控制台显示:
错误:属性width =“NaN”
的值无效
答案 0 :(得分:6)
好像你有拼写错误。显示.data("dataset")
的行应改为.data(dataset)
,不带引号。即,您应该提交dataset
变量,而不是包含其'name。
答案 1 :(得分:0)
.attr("width", function(d){return d.maxTemp*10;});
我相信function(d){return d.maxTemp*10;}
正在注册为数组而不是具有简单返回值的函数。它不是数字(NaN)
你有没有在脚本中定义function(d)
两次,每个都有完全不同的含义?