D3.js气泡图:Cx和cy属性函数无法读取经纬度坐标

时间:2018-10-01 01:59:17

标签: javascript d3.js

遇到我之前制作的气泡图中未发生的错误。我使用了相同的代码,但只是以相同的结构(包括纬度和经度坐标)切换了新数据。

这是控制台中的错误:

TypeError: Cannot read property '0' of null
at SVGCircleElement.<anonymous> (bubbleMap_top_100_gun_dealing_cities.html:108)
at SVGCircleElement.<anonymous> (d3.v4.min.js:2)
at ut.each (d3.v4.min.js:2)
at ut.attr (d3.v4.min.js:2)
at bubbleMap_top_100_gun_dealing_cities.html:107
at Object.<anonymous> (d3.v4.min.js:2)
at k.call (d3.v4.min.js:2)
at XMLHttpRequest.e (d3.v4.min.js:2)

这是相关代码的一部分:

      var bubbles = svg.append('g')
      .attr('class', 'bubble')
      .selectAll('circle')
      .data(data)
      .enter()
      .append('circle')
      .attr('cx', function(d) {
        return projection([d.lon, d.lat])[0];
      })
      .attr('cy', function(d) {
        return projection([d.lon, d.lat])[1];
      })

我以前的地图使用相同的代码,没有这样的问题。

如果我尝试的话,圆圈确实会画在页面的一角:

       .attr('cx', function(d) {
        return projection([d.lon, d.lat][0]);
      })
      .attr('cy', function(d) {
        return projection([d.lon, d.lat][1]);
      })

有什么想法吗?

更新:CSV中有一个空值! h。

0 个答案:

没有答案