属性cy返回D3 V4中的预期长度误差

时间:2016-12-29 18:16:08

标签: javascript d3.js

我正在尝试使用以下数据集创建散点图:

cyclist-data.json

以下是我尝试为散点图创建的圆圈的代码:

var x = d3.scaleTime()
          .domain([minTime, maxTime]).range([0, width]);
var y = d3.scaleLinear().range([height, 0])
          .domain([0, d3.max(function(d){
            return d.Place
          })]);

chart.selectAll('.dot')
       .data(data)
       .enter().append('circle')
       .attr('class', 'dot')
       .attr('r', '3.5')
       .attr('cx', function(d){
          return x(parseInt(d.Time))
       })
       .attr('cy', function(d){
          return y(d.Place)
       })

但是,我一直收到此错误

  

d3.min.js:4错误:属性cy:预期长度,“NaN”。

不确定会出现什么问题,因为我传递给y函数的值是一个数字(d.Place)。

1 个答案:

答案 0 :(得分:2)

您对d3.max()的调用缺少第一个参数,即获取最大值的数组。根据{{​​3}},正确的用法是:

  

d3.max( array [, accessor ]

因此,您需要将y-scale的定义更改为:

var y = d3.scaleLinear().range([height, 0])
          .domain([0, d3.max(data, function(d){
            return d.Place
          })]);