7

我对d3完全陌生。我已经完成了 Scott Murray 的“Web 的交互式数据可视化”中的很多图表和示例,并且几乎没有遇到任何问题。这是我第一次尝试使用未包含在我的代码中的大型数据集。

d3.csv("historical_weather.csv", function(error,data) {

    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" 的值无效

4

2 回答 2

6

看来你有错字。说的那一行.data("dataset")应该不.data(dataset)带引号。即,您应该提交dataset变量,而不是包含其名称的字符串。

于 2013-08-17T02:15:32.067 回答
0
.attr("width", function(d){return d.maxTemp*10;});

我相信function(d){return d.maxTemp*10;}注册为数组而不是具有简单返回值的函数。它不是数字 (NaN)

你不是function(d)在你的脚本中定义了两次,每一次都有完全不同的含义吗?

于 2013-08-16T03:01:17.303 回答