圆圈不附加到坐标

时间:2018-03-09 18:22:12

标签: d3.js

对D3来说很新,所以感谢您的耐心等待!我正在构建一张地图,我想在美国地图上的某些城市添加圆圈。 lat和lon坐标位于.csv我在GitHub上托管。

现在,我试图追加的两个圈子只出现在地图的最左侧:

The Map

这些是我得到的错误:

Console Errors

以下是代码:

import numpy as np
np.random.seed(123)

a = np.random.uniform(size=(8,3)) # or (512,3)
b = np.random.uniform(size=(16,3)) # or (1024,3)

diff = a[np.newaxis,:,:]-b[:,np.newaxis,:]

dist = np.sqrt(np.sum(diff**2,axis=-1))

1 个答案:

答案 0 :(得分:1)

您为cx和cy设置了相同的值:

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

该值不是cx或cy,它们都是:projection([d.lon,d.lat])将返回包含x和y的两个元素数组,因此您应该使用:

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

传递数组而不是数字时会发生错误。